我正在用WebSockets开发一个简单的应用程序。客户端可以发送输入文本,而服务器端则通过注释为ServerEndpoint的Java类实现。在这里,接收到的输入文本被解码并发送到所有打开的会话。
这是可行的,但我想存储服务器接收到的每一条消息,这样当新客户端连接时(使用一个用@OnOpen注释的方法),它就会接收到他"离线"时发送的所有消息。在不使用数据库的情况下,我可以将这些消息存储在哪里?
使用Singleton模式求解。我创建了一个Singleton类,它存储一个List,该List在onMessage方法中得到更新。然后,在onOpen中,存储的消息被发送到刚刚打开带有套接字的连接的客户端。