我将websocketstompclient与包含名为“tyrus”的glassfish web套接字一起使用,如下所示:
WebSocketStompClient client;
ClientManager clientManager = org.glassfish.tyrus.client.ClientManager.createClient();
clientManager.getProperties().put(
SELECTOR_THREAD_POOL_CONFIG,
defaultConfig().setPoolName("ws-selector"));
clientManager.getProperties().put(
WORKER_THREAD_POOL_CONFIG,
defaultConfig().setPoolName("ws-worker"));
client = new WebSocketStompClient(new StandardWebSocketClient(clientManager));
client.start();
sesion = client.connect(uri, handshakeHeaders(clusterSecret), connectHeaders(), sesHnd).get(10L, SECONDS);
在成功的web套接字连接后,我收到错误消息,错误代码为400。 org.gridgain.control.agent.ControlCenterAgent.AfterConnectedSessionHandler#handleTransportError
的 sesHnd
对象在此错误后执行,但是 DefaultStompSession
参数没有 connection
里面的东西。这个 connection
对象具有类型 org.springframework.web.socket.messaging.WebSocketStompClient.WebSocketTcpConnectionHandlerAdapter
而且它是 stop
方法在上创建所有servlet容器资源 session.disconnect()
以平常的方式。
但在我的例子中,我可以看到一些资源没有被释放。 Thread.getAllStackTraces()
返回一些 ws-selector
以及 ws-worker
我找不到方法来清除它们。
使用 spring-core
, spring-websocket
, spring-messaging
以及 spring-web
4.3.29.发布,以及 tyrus-standalone-client
1.17
暂无答案!
目前还没有任何答案,快来回答吧!