同网站与同网页转行 - Arch1tect/chatbox-webpack GitHub Wiki
设计同网站同网页聊天如何进入以及转换。
用户有控制权,可以决定加入同网页还是同网站。服务器推荐,但最终由用户决定。
目前默认是加入同网站聊天,用户A打开网页首次连接时
- 服务器没发现同网页有其他用户 用户A加入网站聊天室
- 服务器发现同网页有其他用户B 用户A加入同网页聊天 同网页的B应该被强制转移到同网页聊天。 B可能正在聊天,所以倒计时5秒征求用户同意更好一些。如果B不过去,A也许应该被放回到同网站聊天。
- 如果A和B二人在同网页聊天,B离开。A仍旧留在同网页,除非A自己决定去同网站聊天。
总结一下,打开页面的第一次连接应该听从服务器安排。对于已经加入同网站聊天的连接,给5秒时间考虑是否转换到同网页,然后进行转换。如何区分, 如果用户手动从同网页转入同网站,客户端登录时发一个flag - user_decision: true, 那么该socket就不会被打扰。 如果用户拒绝一次服务器的转换邀请,也要记下这个flag。
前端应该设置可以选择是否接收建议,以及默认是加入同站还是同页聊天。