命名空间

Socket.io允许你 “namespace”你的sockets,这实际上意味着分配不同的端点或路径。 这是一个有用的功能,可以最大限度地减少资源(TCP连接)的数量,同时通过在通信通道之间引入分离来分离应用程序中的问题。

默认命名空间

我们调用默认名称空间/它是默认情况下连接到的一个Socket.IO客户端,以及默认情况下服务器监听的那个。

此命名空间由io.sockets或简单地io标识为:

  1. //以下都被emit到所有socket连接
  2. io.sockets.emit('hi','everyone');
  3. io.emit('hi','everyone')//简写

自定义命名空间

要设置自定义命名空间,可以在服务端调用of函数

  1. const nsp= io.of('/my-namespace');
  2. nsp.on('connection',(socket)=>{
  3. console.log('some connected')
  4. })
  5. nsp.emit('hi','everyone')

在客户端,你告诉Socket.IO客户端连接到该命名空间:

  1. const socket= io('/my-namespace')

重要提示:命名空间是Socket.IO协商的实现细节,与底层传输的实际URL无关,默认为:/socket.io/...