1

我正在编写一个聊天服务器应用程序,用户可以在其中与他的一位朋友交换消息。当用户连接时,我将他的连接存储在类变量哈希中:

@@connections[:user_id] = conn

当有人向用户发送消息时,我会在哈希上查找他的连接并通过它发送消息。有时,客户端的连接会直接断开,并且不会调用 onclose 回调。

4

1 回答 1

1

这很好用,这也是我开始编写 Web IRC 客户端时所做的,但问题是您将连接的用户耦合到单个 ruby​​ 进程。如果您想启动第二个 em 反应器,则该第二个进程将不会共享相同的类变量。您可以通过使用 haproxy 在不同进程之间拆分用户来解决此问题,但需要注意这一点。

于 2012-07-18T17:05:04.797 回答