【发布时间】:2017-12-29 10:50:36
【问题描述】:
服务器端
io.on('connection', function(socket){
socket.on('user joined', function(data){
socket.join(data.username);
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
socket.on('send private', function(data){
console.log('sending private', data);
io.in(data.to).emit('pmessage',data);
})
});
客户端
handleSubmit(){
var newMSG= {
to: this.state.selectedFriend,
from: this.props.user.username,
message: 'new message yay'
}
this.state.socket.emit('send private', newMSG);
}
componentDidMount(){
var self = this;
self.state.socket.on('pmessage', function(data){
console.log('receiving private!', data);
document.getElementById('myprivates').innerHTML= "<p><em>"+data.message+"</em></p>";
})
}
我无法触发“pmessage”发出事件,所以我认为我没有正确执行 io.in() 部分。我正在尝试使用用户的用户名实现私人通信,但我找不到明确的示例或文档。我关注了 socket io 上的文档,所以我应该关闭或工作,但事实并非如此。
【问题讨论】:
-
selectedFriend 是用户名*,data.username 也是用户名,只是为了澄清