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

时间:2013-10-12 01:38:10

标签: process websocket server-side

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

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

    服务器可以处理1个进程中的所有用户吗?没有分开它们,所以有些像全球过程。

    谢谢。

1 个答案:

答案 0 :(得分:6)

这是高度依赖服务器的。

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

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

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

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

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