Java Web Socket ServerEndpoint 线程安全

Java Web Socket ServerEndpoint Thread Safety

各个 ServerEndpoint 是否线程安全,或者它们是否属于在给定时间与它们交互的所有客户端?

或者用另一种方式来问同样的问题: ServerEndpoint class 中的全局对象是否存在产生并发问题的危险,?

This example好像说明每个Endpoint都是线程安全的,或者他只是在用Set,祈祷不要弹出并发问题?

因此,假设它们是线程安全的,容器(Tomcat、Glassfish 等)是否会在每次来自不同客户端的新连接时创建 ServerEndpoint class 的新实例成立了吗?

默认情况下,每个客户端连接都会创建新的 @ServerEndpoint 实例。 (这似乎也是最后一个问题的答案)。

必须同步静态对象(或对它们的访问)。

链接示例使用了synchronizedSet,所以看起来没问题。

此外 - @OnMessage 方法不会在之前的 @OnMessage 处理结束之前被触发,但它可以从不同的线程调用。这意味着您将始终按顺序处理传入的消息。