我正在关注此博客的示例,并在实施
后出现了问题https://github.com/DanialK/ReactJS-Realtime-Chat
总结一下,在通过websocket发送消息之前,消息的状态会更新。 当服务器收到该消息时,他们会向所有客户发送广播,并将自己发送给我。 Thereat,客户端使用相同的消息更新状态
为什么此消息不会出现2次? 我不希望该消息出现2次,但我想知道它为什么会发生
客户代码:
socket.on('send:message', this.messageRecieve);
...
handleMessageSubmit : function(message){
Messages.push(message);
this.setState({ messages : Messages });
socket.emit('send:message', message);
},
messageRecieve: function(message){
Messages.push(message);
this.setState({ messages : Messages });
},
服务器代码:
socket.on('send:message', function (data) {
socket.broadcast.emit('send:message', {
user: name,
text: data.text
});
});
答案 0 :(得分:5)
服务器不会将消息发送给连接的用户。
根据socket.io文档,此API发送给除套接字所有者以外的所有人:
socket.broadcast.emit('send:message')
https://github.com/DanialK/ReactJS-Realtime-Chat/blob/master/routes/socket.js