【发布时间】:2020-04-10 15:30:26
【问题描述】:
目前我正在使用 API 来获取 chatList,因此用户无法知道他们是否收到了新的 msg。他们必须刷新页面才能知道有新消息。
当用户在聊天时,我正在与套接字连接,当他们离开聊天并移动到其他页面时,他们与套接字断开连接。 但如果他们移动到其他页面,我希望他们保持联系。
您能指导我如何实现这一目标吗?有没有通用的socket可供应用?
【问题讨论】:
目前我正在使用 API 来获取 chatList,因此用户无法知道他们是否收到了新的 msg。他们必须刷新页面才能知道有新消息。
当用户在聊天时,我正在与套接字连接,当他们离开聊天并移动到其他页面时,他们与套接字断开连接。 但如果他们移动到其他页面,我希望他们保持联系。
您能指导我如何实现这一目标吗?有没有通用的socket可供应用?
【问题讨论】:
socket.io 和 webSocket 连接无法从一页持续到下一页。当您离开一个页面并转到另一个页面时,第一页中的所有资源(包括任何 webSocket 或 socket.io 连接)都将被关闭。这就是浏览器的工作原理。
您可以制作一个单页应用程序 (SPA),其中用户单击事物并更改视图,但它只是将动态内容加载到同一页面中,因此实际网页永远不会在浏览器中关闭,因此 socket.io连接可以持续。
或者,您可以使用 cookie 标记用户,这样当他们离开页面时,他们的连接会关闭,然后他们会加载另一个页面并建立新的连接,您的服务器可以看到他们与刚才的用户相同已连接,并且您的服务器可以进行适当的设置,以便它们继续进行,就好像连接从未重做一样。
是否有任何通用套接字可供应用程序使用?
不,没有。
当用户在聊天时,我正在与套接字连接,而当他们离开聊天并移动到其他页面时,他们与套接字断开连接。
是的,当网页关闭时,所有浏览器都会断开连接。
【讨论】: