我想在websocket连接之间共享一些信息。共享数据有点复杂,因此我无法使用EndpointConfig.getUserProperties()
。我想扩展ServerEndpointConfig.Configurator
并添加我自己的数据结构。(我不想覆盖其他方法,如getEndpointInstance
)。问题是我应该使用线程安全的数据结构吗?或者我可以使用任何数据结构和Web套接字容器将保证我的实例ServerEndpointConfig.Configurator
将以安全的方式访问。
答案 0 :(得分:1)
那感觉太烂了
配置器应该是不可变的(检查Tyrus configurator for example)并且不打算成为共享点
在Java EE环境中有一种更好的方法
Websocket规范为CDI / EJB提供了一些支持。您可以注入@ApplicationScoped
或@Singleton
bean并使用它来共享数据(bean必须同步)。
这是来自Tyrus samples on Github