ServerEndpointConfig.Configurator实例应该是线程安全的吗?

时间:2014-05-14 13:27:39

标签: java multithreading java-ee websocket tyrus

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

1 个答案:

答案 0 :(得分:1)

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

的共享计数器示例