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

标签 java multithreading jakarta-ee websocket tyrus

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

最佳答案

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

关于java - ServerEndpointConfig.Configurator 实例应该是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23656060/

相关文章:

jakarta-ee - 如何从primefaces本地化时间线组件

java - 通过 JNDI 将 Tomcat 连接到独立的 Artemis Broker

java - 如何为用户提供的国家名称预测正确的国家名称?

Java 8 - 如何访问封装为 lambda 的对象和方法

java - 线程无法正常工作?

multithreading - 哪些CPU体系结构支持比较和交换(CAS)?

vb.net - 需要有关 VB.Net 多线程选项的建议

java - Spring Transaction 如果这个重复的键给出异常,但它不执行回滚(更新代码以更好地检测错误)

java - 当我只想为特定单元格着色时,JTable 正在为每个单元格着色

JAVA与服务器php通信