我想在 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/