我正在编写一个聊天服务器应用程序,用户可以与他的一个朋友交换消息。当用户连接时,我将他的连接存储在类变量hash上:
@@connections[:user_id] = conn
当有人向用户发送消息时,我会在哈希上查找他的连接并通过它发送消息。有时客户端的连接只会死掉,并且不会调用onclose回调。
答案 0 :(得分:1)
这很好用,这就是我开始编写Web IRC客户端时所做的,但问题是你将连接的用户耦合到一个ruby进程。如果您想启动第二个em反应器,那么第二个进程将不会共享相同的类变量。您可以通过使用haproxy在不同进程之间拆分用户来解决这个问题,但需要注意这一点。