如何处理websocket中的在线用户

时间:2014-09-17 12:11:37

标签: websocket playframework-2.0 java-websocket

我已经在websocket协议上建立了一个聊天应用程序,现在我的问题是如何处理当前的在线用户,我应该在hashMap或其他一些地方存储他们的会话(例如用户详细信息,如user_id)吗?

1 个答案:

答案 0 :(得分:0)

除了存储此信息之外,我没有看到任何其他选项,因为它(很可能)对您的应用程序很重要。想象一下,您需要支持私人消息:您不能只将消息发送给所有连接的客户端。

您应该提供一些保存连接信息的数据结构。也许是一些映射,其中键是会话标识符(或用户名,或某些唯一标识符),值是一对WebSocket.InWebSocket.out对象。你甚至可以有两个地图(一个用于'in'对象,一个用于'out'对象),任何适合你的地图。然后,您可以向特定客户发送消息,或仅向其中几个发送消息,但不是全部。

您可以使用public void onReady(WebSocket.In<String> in, WebSocket.Out<String> out)方法将数据放入地图中。 (这里我假设您使用Java并使用回调来处理WebSockets)

当然,不要忘记在套接字关闭时清理地图(查看in.onClose()方法)。