我正在努力建立一个类似https://www.omegle.com/的网站,这是一次一对一的对话。
如果任何关联用户点击断开连接按钮以结束聊天,则必须向两个用户显示new chat
div
。
但问题是new chat
div
仅向用户显示点击断开连接按钮。
这是我的客户端代码
$disconnect.click((e) => {
e.preventDefault();
socket.emit('user disconnect', socket.id, (data) => {
if(data){
$messageForm.hide();
$newChat.show();
}
});
});
我不知道解决这个问题。请有人帮助我。
Thnx提前。
答案 0 :(得分:2)
这里的重点是你使用emit
回调。但是这个回调只响应源客户端。
因此,您可以在此处将客户端处理程序更改为:
socket.partner_id
是您谈话的伙伴。
$disconnect.click((e) => {
e.preventDefault();
socket.emit('user disconnect', socket.partner_id, (data) => {
if(data){
console.log('Closed chat room by your self')
$messageForm.hide();
$newChat.show();
}
});
});
socket.on('user disconnect', () => {
console.log('Closed chat room by your partner')
$messageForm.hide();
$newChat.show();
})
您的服务器端:
socket.on('user disconnect', function (partner_id, fn) {
socket.broadcast.to(partner_id).emit('user disconnect');
fn(true);
}))
希望得到这个帮助。