我与服务器和客户端建立了连接,并让服务器侦听要在大厅播放的播放器。服务器接收播放器名称并更新播放器,但是,当将播放器发回客户端时,我遇到了问题。
服务器
io.on('connection', function(socket){ ....
socket.emit('ack', {....
socket.on('createPlayer', function(data){
.... (update newPlayer object) .....
socket.emit('newPlayer', {
playerName: newPlayer.name
[...]
客户
let socket = io();
socket.on('ack', function(data) {
console.log('ack', data)
}
socket.on('newPlayer', function(data) {
console.log('newPlayer', data)
当客户端的浏览器与服务器建立连接时,将发送和接收“ ack”消息,并将其记录到客户端的控制台。但是,当客户端创建一个新播放器并点击“ createPlayer” socket.on时,它将尝试将新播放器发回客户端,但从未收到。
关于客户为什么永远不会收到发送消息的任何建议?
答案 0 :(得分:0)
您应该使用它向所有连接的客户端发送消息:
io.emit('event_name', msg);
您还应该对除新客户端之外的所有客户端使用此功能:
socket.broadcast.emit('event_name', msg);
此功能用于将消息发送到当时已发送消息的新客户端:
socket.emit('event_name', msg)
您可以使用此方法发送指定的客户端:
io.to(socketId).emit('event_name', data)