如何在节点服务器重新启动时存储/保留套接字连接

时间:2014-02-06 11:07:50

标签: node.js mongodb sockets websocket webrtc

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

我使用Mongodb作为此应用程序的数据库。有没有办法存储在数据库中,并在重新启动服务器时将其检索回来?

1 个答案:

答案 0 :(得分:2)

我将给你一个共同的生活情况来解释这一点。

假设您有一部无法拨打电话的手机,您只能接听电话。

有人打电话给你,你可以和他们交谈,消息在持续连接上前后传递。这比短信更好,因为你只能回复发送给你的短信,但现在你可以通过这种不断的联系畅所欲言。

现在在这些陈述中,我刚刚描述了Websockets是什么以及Http之间的区别。接下来,我会将此应用于您所要求的内容。

现在假设在这款手机上你只能继续谈论从别人那里收到的电话,你的电池电量耗尽了。您可以找到插入电源并再次使用手机。那么你是否希望你的手机突然重新建立电池耗尽时掉线的电话?

您不会发起您正在谈论的连接。因此,您无法“回拨”或“重新建立呼叫”。这是一个严格的“客户称呼你”的场景。

您可以做的最好的事情是将会话状态维持到后续重新连接“从您上次停下的位置”。但是在挂断电话时,客户必须给你回电。

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