我已经通过 websocket 协议制作了一个聊天应用程序,现在我的问题是如何处理当前的在线用户,我应该将他们的会话(即 user_id 之类的用户详细信息)存储在 hashMap 或其他中吗?
问问题
1246 次
1 回答
0
除了存储此信息之外,我没有看到任何其他选项,因为它(很可能)对您的应用程序很重要。想象一下,您需要支持私人消息:您不能只将消息发送给所有连接的客户端。
你应该想出一些数据结构来保存你的连接信息。也许某些映射的键是会话标识符(或用户名,或其他唯一标识符),值是一对WebSocket.In
andWebSocket.out
对象。您甚至可以有两张地图(一张用于“in”对象,一张用于“out”对象),只要适合您。然后,您可以向特定客户或仅向其中几个(但不是全部)发送消息。
您可以使用该public void onReady(WebSocket.In<String> in, WebSocket.Out<String> out)
方法将数据放入地图中。(这里我假设您正在使用 Java 并使用回调处理 WebSockets)
当然,不要忘记在套接字关闭时清理地图(查看in.onClose()
方法)。
于 2014-09-18T09:27:29.950 回答