更新状态后 Reactjs 不会复制我的消息



我在这个博客中以这个例子为例,在实现后出现了这个问题

https://github.com/DanialK/ReactJS-Realtime-Chat

总之,在通过websocket发送消息之前,会更新消息的状态。当服务器收到这个消息时,他们会向所有客户端发送一个广播,包括我自己。在那里,客户端用这个相同的消息更新状态

为什么此消息没有出现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
    });
});

服务器不会向连接的用户发送消息。

根据socket.io文档,这个API发送给除套接字所有者之外的所有人:

socket.broadcast.emit('send:message')

https://github.com/DanialK/ReactJS-Realtime-Chat/blob/master/routes/socket.js

相关内容

  • 没有找到相关文章

最新更新