से कनेक्ट नहीं होगा मैं नया (संस्करण 4.2 के रूप में) जावा STOMP क्लाइंट समर्थन के साथ खेल रहा हूं। मेरा प्रारंभिक बिंदु प्रारंभ करना मार्गदर्शिका है (Using WebSocket to build an interactive web application)।WebSocketStompClient SockJS एंडपॉइंट
निम्नलिखित endpoint उदाहरण में प्रदान की जाती है:
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/hello").withSockJS();
}
मैं सफलतापूर्वक ब्राउज़र क्लाइंट का उपयोग कनेक्ट कर सकते हैं। का उपयोग करते समय stomp जावा ग्राहक का उपयोग कर इस समाप्ति बिंदु को कनेक्ट करने का प्रयास करें: आगे की जांच करने पर
08:56:30.629 [SimpleAsyncTaskExecutor-1] DEBUG o.s.m.simp.stomp.DefaultStompSession - Failed to connect session id=4e6737da-8f68-691d-375f-9e46f48bc149 javax.websocket.DeploymentException: The HTTP response from the server [HTTP/1.1 200 OK ] did not permit the HTTP upgrade to WebSocket at org.apache.tomcat.websocket.WsWebSocketContainer.parseStatus(WsWebSocketContainer.java:637) ~[tomcat-embed-websocket-8.0.20.jar:8.0.20] at org.apache.tomcat.websocket.WsWebSocketContainer.processResponse(WsWebSocketContainer.java:621) ~[tomcat-embed-websocket-8.0.20.jar:8.0.20] at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:309) ~[tomcat-embed-websocket-8.0.20.jar:8.0.20] at org.springframework.web.socket.client.standard.StandardWebSocketClient$1.call(StandardWebSocketClient.java:152) ~[spring-websocket-4.2.0.BUILD-SNAPSHOT.jar:4.2.0.BUILD-SNAPSHOT] at org.springframework.web.socket.client.standard.StandardWebSocketClient$1.call(StandardWebSocketClient.java:149) ~[spring-websocket-4.2.0.BUILD-SNAPSHOT.jar:4.2.0.BUILD-SNAPSHOT] at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0] at java.lang.Thread.run(Unknown Source) [na:1.8.0]
मैं सर्वर endpoint विन्यास बदल TomcatWebSocketTestServer.java के आधार पर:
WebSocketClient transport = new StandardWebSocketClient();
WebSocketStompClient stompClient = new WebSocketStompClient(transport);
stompClient.setMessageConverter(new StringMessageConverter());
String url = "ws://127.0.0.1:8080/hello";
ListenableFuture<StompSession> future = stompClient.connect(url,myHandler);
मैं निम्नलिखित अपवाद का सामना StompWebSocketIntegrationTests.java में इस्तेमाल इस प्रकार है:
RequestUpgradeStrategy upgradeStrategy = new TomcatRequestUpgradeStrategy();
registry.addEndpoint("/hello")
.setHandshakeHandler(new DefaultHandshakeHandler(upgradeStrategy))
.setAllowedOrigins("*");
मैं अब कनेक्ट कर सकते हैं, लेकिन ब्राउज़र ग्राहकों नहीं कर सकता।
GET http://localhost:8080/hello/info 404 (Not Found)
अगर मैं .withSockJs जोड़ने() endpoint विन्यास करने के लिए:
RequestUpgradeStrategy upgradeStrategy = new TomcatRequestUpgradeStrategy();
registry.addEndpoint("/hello")
.setHandshakeHandler(new DefaultHandshakeHandler(upgradeStrategy))
.setAllowedOrigins("*")
.withSockJs();
ब्राउज़र ग्राहकों को फिर से कनेक्ट कर सकते हैं, लेकिन जावा ग्राहक वापस मूल त्रुटि है।
क्या मुझे दोनों ग्राहकों के बीच एक ही अंतराल साझा करने में सक्षम होना चाहिए या क्या मुझे इस मामले में दो अलग-अलग अंतराल को कॉन्फ़िगर करने की आवश्यकता है?
धन्यवाद, आपका उत्तर सहायक था। मैंने आपकी प्रतिक्रिया के आधार पर नई प्रतिक्रिया के साथ अपना उत्तर अपडेट कर दिया है। क्षमा करें मैं अभी तक ऊपर नहीं जा सकता (पर्याप्त प्रतिष्ठा अंक नहीं)। – stacktrace