Search…
1-6 广播(Broadcasting)
下一个目标是让我们从服务器向其他用户发送事件
为了发送一个事件给所有人,socket.io给我们提供了io.emit:
1
io.emit('some event',{for:'hey gay! to everyone'})
Copied!
如果你想向除了某些socket以外的所有人发送消息,我们有broadcasting广播标志:
1
// 向所有非自己连接的客户端,发送连接数
2
io.on('connection',(socket)=>{
3
socket.broadcast.emit('hi')
4
})
Copied!
如图,刷新中间的窗口,服务器则向左右两侧的窗口推送消息:
广播
在这种情况下。为了简单起见,我们会将消息发送给所有人,包括发件人
1
io.on('connection',(socket)=>{
2
socket.on('chat message',(msg)=>{
3
io.emit('chat message',msg)
4
})
5
})
Copied!
在客户端,我们捕获到聊天消息,将其也包含在页面中,现在客户端的JS代码如下:
1
<script>
2
$(function () {
3
var socket = io();
4
$('form').submit(function(e){
5
e.preventDefault(); // prevents page reloading
6
socket.emit('chat message', $('#m').val());
7
$('#m').val('');
8
return false;
9
});
10
socket.on('chat message', function(msg){
11
$('#messages').append($('<li>').text(msg));
12
});
13
});
14
</script>
Copied!
这就是完成了我们的聊天应用程序,大约20行代码!它就是这样子:
Last modified 2yr ago
Copy link