【问题标题】:How can i use socket.io globally in node.js如何在 node.js 中全局使用 socket.io
【发布时间】:2020-04-10 15:30:26
【问题描述】:

目前我正在使用 API 来获取 chatList,因此用户无法知道他们是否收到了新的 msg。他们必须刷新页面才能知道有新消息。

当用户在聊天时,我正在与套接字连接,当他们离开聊天并移动到其他页面时,他们与套接字断开连接。 但如果他们移动到其他页面,我希望他们保持联系。

您能指导我如何实现这一目标吗?有没有通用的socket可供应用?

【问题讨论】:

    标签: node.js mongodb socket.io


    【解决方案1】:

    socket.io 和 webSocket 连接无法从一页持续到下一页。当您离开一个页面并转到另一个页面时,第一页中的所有资源(包括任何 webSocket 或 socket.io 连接)都将被关闭。这就是浏览器的工作原理。

    您可以制作一个单页应用程序 (SPA),其中用户单击事物并更改视图,但它只是将动态内容加载到同一页面中,因此实际网页永远不会在浏览器中关闭,因此 socket.io连接可以持续。

    或者,您可以使用 cookie 标记用户,这样当他们离开页面时,他们的连接会关闭,然后他们会加载另一个页面并建立新的连接,您的服务器可以看到他们与刚才的用户相同已连接,并且您的服务器可以进行适当的设置,以便它们继续进行,就好像连接从未重做一样。

    是否有任何通用套接字可供应用程序使用?

    不,没有。

    当用户在聊天时,我正在与套接字连接,而当他们离开聊天并移动到其他页面时,他们与套接字断开连接。

    是的,当网页关闭时,所有浏览器都会断开连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-08
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      • 2017-12-16
      • 2019-03-05
      • 1970-01-01
      相关资源
      最近更新 更多