websockets服务器是否始终运行每个用户的进程



我试图了解websokects在服务器端的工作方式。正如我从这里的答案中得到的那样,主要是下一个案例:

  1. 浏览器连接到服务器
  2. 服务器与用户建立双工持久连接
  3. 服务器为此用户运行代码实例
  4. 这一切都对其他用户重复

所以问题是:

服务器可以在一个进程中处理所有用户吗?而不将它们分开,所以有些喜欢全局进程。

谢谢。

这是高度依赖服务器的。

一些示例服务器实现/技术:(显然不是完整列表)

  1. 每个 websocket 连接一个进程
  2. 每个 websocket 连接一个线程
  3. 一个线程管理多个 n 个 websocket 连接
  4. 所有 Websocket 连接的共享线程池。(根据需要拉入和使用线程。 如果连接处于空闲状态,则线程将返回到池中。

您将看到每个实现的权衡。

由于 websocket 不是一种请求>响应方法,因此很难说一种方法比另一种方法更好。 您想了解您计划如何使用 websocket 以了解哪种方法是最好的。

关于这个问题的一些想法:(高度基于意见)

  • 您的服务器端是否会进行繁重的处理?(选择技术 1、2 或 3)
  • 您的服务器端会很健谈吗?(选择 3 或 4)
  • 您是否要有 1 个中央 websocket 服务器实例,与许多客户端(如聊天服务器)通信?(选择 3 或 4)
  • 或者您是否将为每个用户自定义交互式更新?(如股票市场活动提要)(选择 1、2 或 4)
  • 想要支持数万个(如果不是数十万个)同时连接?(选择 3 或 4)
  • 您最大的限制是什么? 记忆?中央处理器?网络带宽?

相关内容

  • 没有找到相关文章

最新更新