我想在websocket连接之间共享一些信息。共享数据有点复杂,所以我不能使用EndpointConfig.getUserProperties()。我想扩展ServerEndpointConfig.Configurator并添加自己的数据结构。(我不想覆盖其他方法,例如getEndpointInstance)。问题是我应该使用线程安全的数据结构吗?或者,我可以使用任何数据结构,并且Web套接字容器将确保以安全的方式访问我的ServerEndpointConfig.Configurator实例。

最佳答案

感觉太黑了。
配置程序应该是不可变的(检查Tyrus configurator for example),而不是要用作共享点。
在Java EE环境中,有一种更好的方法。
Websocket规范为CDI / EJB提供了一些支持。您可以注入@ApplicationScoped@Singleton bean并使用它共享数据(必须同步bean)。
有一个来自Tyrus samples on Github的共享计数器示例

10-02 06:53