node.js - 当 Node 服务器重新启动时,如何存储/保留套接字连接

标签 node.js mongodb sockets websocket webrtc

我正在使用 webrtc.io 为我的音频、视频聊天应用程序创建套接字连接。我想保留所有套接字连接,以便在 Node.js 服务器重新启动时可以向所有最终用户发送更新。

我使用 Mongodb 作为此应用程序的数据库。有什么方法可以存储在数据库中并在服务器重新启动时检索回来吗?

最佳答案

我将给你一个常见的生活情境来解释这一点。

假设您有一部无法调用电话而只能接听电话的手机。

有人给您打电话,您可以与他们交谈,消息在持续连接中来回传递。这比短信更好,因为您只能回复发送给您的短信,但现在您可以通过这种持续的连接自由交谈。

现在,在这些陈述中,我刚刚描述了 Websockets 的内容。和 Http 之间的区别。接下来我将把它应用到你所问的问题上。

现在假设在这部手机上,您只能继续接听其他人的电话,但您的电池电量耗尽了。您找到电源插入并让手机重新工作。那么,您是否希望手机在电池电量耗尽时突然重新建立掉线的通话?

您没有启动您正在谈论的连接。因此您无法“回拨电话”或“重新建立调用”。这是严格意义上的“客户给您打电话”的场景。

您能做的最好的事情就是保持 session 状态,以便后续重新连接“从您上次中断的地方继续”。但挂断时客户必须给您回电。

为了获得更好的可用性,您需要代理连接并在多个应用程序服务器 Node 上共享,所有 Node 都可以访问相同的 session 状态。

关于node.js - 当 Node 服务器重新启动时,如何存储/保留套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21601163/

相关文章:

javascript - 对象成员函数中的setInterval错误

node.js - 开 Jest ,不要 mock request-promise-native post 方法

c - 如何知道客户端是否已在套接字中终止

java - 非阻塞 IO 仍然是服务器端 Java 的问题吗?

c - 从 Linux C 向许多 Android 手机发送 UDP 消息

node.js 无法使用 http 进行 rest 调用

node.js - 当返回 promise 而不是流时,Gulp 结束得太早

node.js - MongoDB 类型错误 : Cannot read property 'result' of undefined

javascript - Mongo 查询从集合数组中返回特定值

python - 如果元素不存在(无重复),则将元素推送到数组