websockets服务器是否始终按用户运行进程?

zr9*_*zr9 3 process server-side websocket

我试图了解websokects在服务器端的工作原理.正如我从这里得到的答案主要是下一个案例:

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

所以问题是:

服务器能否在1个进程中处理所有用户?没有分开它们,所以有些像全球过程.

谢谢.

Joa*_*elt 6

这是高度依赖服务器的.

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

  1. 每个websocket连接一个进程
  2. 每个websocket连接一个线程
  3. 一个线程管理许多n websocket连接
  4. 所有websocket连接的共享线程池.(线程被拉入并根据需要使用.如果连接空闲,则线程返回到池中.)

您将看到的是与每个实现的权衡.

由于websocket不是请求 - >响应方法,因此很难说一种方法比另一种方法更好.您想了解如何使用websockets来了解哪种方法最好.

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

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