我使用 GF 4 作为 JavaEE 服务器。
这就是我对 servlet 处理的理解:有一个线程池,当请求来自该池时,将采用一个线程来处理请求。之后,线程被放回池中。
根据上面的信息,我想(我不确定)websockets(服务器端点)是这样处理的:有线程池,当
- 客户端创建新的 websocket,从池中获取一个线程来创建 ServerEndpoint 的新实例并执行 @OnOpen 方法。在该线程被放回池之后。
- 客户端通过 websocket 向服务器发送消息。从池中取出线程来执行@OnMessage 方法。在该线程被放回池之后。
- 客户端关闭 websocket - 从池中获取线程以执行 @OnClose 方法。在该线程被放回池之后。
这一切都意味着 ServerEndpoint 的每个方法都可以由不同的线程执行。我的理解对吗?