最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

多Socket.io应用程序会导致每个客户端插座连接和断开反复

IT培训 admin 2浏览 0评论

多Socket.io应用程序会导致每个客户端插座连接和断开反复

我的工作与Socket.io一个应用程序的NodeJS,我在使用PM 2单个进程做了一个测试,这是没有错误。然后,我搬到我们的生产环境(我们使用谷歌云计算实例)。

我运行3个应用程序进程和iOS的客户端连接到服务器。顺便说了iOS客户端不保留套接字连接。它不发送断开连接到服务器。但它断开并重新连接到服务器。它不断地发生。

我不知道为什么服务器断开连接客户端。如果您有这方面的任何提示或答案,我将不胜感激你。

回答如下:

这可能是因为请求在不同的机器,而不是他们源于一个上结束。

直接从Socket.io Docs: Using Multiple Nodes:

如果您计划分发不同的进程或机器之间的连接负载,你必须确保有一个特定的会话ID相关联的请求连接到它们起源的过程。

你需要做什么:

  • 启用session affinity,a.k.a粘性会话。
  • 如果你想与房/命名空间来工作,你还需要使用一个集中的内存存储跟踪的命名空间的信息,如Redis/Redis Adapter。

但我建议你阅读文档的一块,我贴了,事情可能因为我已经实现了这样的事情是最后一次修改一下。

多Socket.io应用程序会导致每个客户端插座连接和断开反复

我的工作与Socket.io一个应用程序的NodeJS,我在使用PM 2单个进程做了一个测试,这是没有错误。然后,我搬到我们的生产环境(我们使用谷歌云计算实例)。

我运行3个应用程序进程和iOS的客户端连接到服务器。顺便说了iOS客户端不保留套接字连接。它不发送断开连接到服务器。但它断开并重新连接到服务器。它不断地发生。

我不知道为什么服务器断开连接客户端。如果您有这方面的任何提示或答案,我将不胜感激你。

回答如下:

这可能是因为请求在不同的机器,而不是他们源于一个上结束。

直接从Socket.io Docs: Using Multiple Nodes:

如果您计划分发不同的进程或机器之间的连接负载,你必须确保有一个特定的会话ID相关联的请求连接到它们起源的过程。

你需要做什么:

  • 启用session affinity,a.k.a粘性会话。
  • 如果你想与房/命名空间来工作,你还需要使用一个集中的内存存储跟踪的命名空间的信息,如Redis/Redis Adapter。

但我建议你阅读文档的一块,我贴了,事情可能因为我已经实现了这样的事情是最后一次修改一下。

发布评论

评论列表 (0)

  1. 暂无评论