自定义命名空间
我们可以创建自己的自定义名称空间。要设置自定义名称空间,我们可以在服务器端调用'of'函数-
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res) {
res.sendfile('index.html');
});
var nsp = io.of('/my-namespace');
nsp.on('connection', function(socket) {
console.log('someone connected');
nsp.emit('hi', 'Hello everyone!');
});
http.listen(3000, function() {
console.log('listening on localhost:3000');
});
现在,要将客户端连接到该名称空间,您需要提供名称空间作为io构造函数调用的参数,以在客户端创建连接和套接字对象。例如,要连接到上述名称空间,请使用以下HTML-
<!DOCTYPE html>
<html>
<head>
<title>Hello world</title>
</head>
<script src = "/socket.io/socket.io.js"></script>
<script>
var socket = io('/my-namespace');
socket.on('hi',function(data) {
document.body.innerHTML = '';
document.write(data);
});
</script>
<body></body>
</html>
每当有人连接到该命名空间时,他们都会收到一个“hi”事件。