关于多个页面同时打开 会发送多次消息给客户端的问题

梁大胖

请教大神
我绑定好用户id
但是当打开2个网页的时候 如果 一个网页给服务端发消息 服务端会收到2条消息(由于同时打开了2个相同的聊天网页,如果打开3个就会受到3条消息),这种怎么解决呢,非常感谢

现在能想到的一个思路是:在新打开一个页面的时候 去断开之前的网页链接 但是这个怎么写呢 求大神指导.

2015 3 0
3个回答

天道酬勤

每个连接都有独立的client_id,调用Gateway::sendToClient($client_id, $数据) 发消息,这样就只有一个页面收到了

  • 暂无评论
梁大胖

非常感谢大神的回复 但是现在的问题不是接收方打开了2个网页 而是发送方打开了2个以上网页导致同一条消息多次发送了呀 这个怎么解哦

  • 暂无评论
天道酬勤

发送方打开2个网页,在一个页面发消息会裂变成2条发送?
你发消息代码有问题吧,找下你客户端代码发送2条的原因。解决就是了

  • 梁大胖 2019-12-31

    嗯嗯 已经解决了 因为我的原代码是 服务器收到消息后给Uid发送一个save请求 然后前端接到save请求发送ajax到后台存储数据,由于打开多个页面 所以每个页面都会收到一个save请求 导致最后数据库对一条数据进行了多次存储,只需要把UID换成client_id就行了,非常感谢大神提供的思路

年代过于久远,无法发表回答
🔝