Search…
2.1.7 限制自己使用命名空间
如果您可以控制为特定应用程序发出的所有消息和事件,则使用默认/命名空间。 如果您想利用第三方代码,或生成与其他人共享的代码,socket.io提供了一种命名空间socket的方法。
这具有多路复用单个连接的优点。 而不是使用两个WebSocket连接的socket.io,它将使用一个。

Server (app.js)

1
const io = require('socket.io')(80)
2
const chat = io
3
.of('/chat')
4
.on('connection',(socket)=>{
5
socket.emit('a message',{
6
that:'only',
7
'/chat':'will get'
8
})
9
chat.emit('a message',{
10
everyone:'in',
11
'/chat':'will get'
12
})
13
})
14
const news = io
15
.of('/news')
16
.on('connection',socket=>{
17
socket.emit('item',{news:'item'})
18
})
Copied!

Client (index.html)

1
<script>
2
const chat = io.connect('http://localhost/chat')
3
const news = io.connect('http://localhost/news')
4
chat.on('connect',()=>{
5
chat.emit('hi~')
6
})
7
news.on('news',()=>{
8
news.emit('wowo~')
9
})
10
</script>
Copied!