2015-04-23 7 views
19

मेरे त्रुटि अपने ब्राउज़र की कंसोल में दिखाई देता है:मुझे वेबसाईट से कनेक्ट करते समय 200 स्थिति मिलती है, लेकिन यह एक त्रुटि है?

"WebSocket connection to 'ws://localhost:32768/DspClusterWebServices/myHandler' failed: Unexpected response code: 200"

मैं Spring Websockets 4.1.5 और Tomcat 8.0.18 उपयोग कर रहा हूँ।

@Configuration 
@Controller 
@EnableWebSocket 
public class WebSocketConfig implements WebSocketConfigurer 
{ 
    class MyHandler implements WebSocketHandler 
    { 
     @Override 
     public void afterConnectionEstablished(WebSocketSession session) throws Exception 
     { 
     System.out.println("afterConntectionEstablished called"); 
     } 

     ...implements rest of functions with a System.out.println and false for supportsPartialMessages() 

     } 
    } 

    @Override registerWebSocketHandlers(WebSocketHandlerRegistry registry) 
    { 
     registry.addHandler(myHandler(), "myHandler").withSockJS(); 
    } 

    @Bean 
    public WebSocketHandler myHandler() 
    { 
     return new MyHandler(); 
    } 
} 

मेरे testWebsocketClient.js इस कोड के साथ कनेक्ट करने के लिए कोशिश करता है, लेकिन 200 का एक त्रुटि कोड है:: मेरी WebSocketConfigurer कार्यान्वयन वर्ग की तरह लग रहा

websocket = new WebSocket("ws://localhost:8080/myApp/myHandler"); 

मैं समझ नहीं है कि आगे क्या करने की कोशिश करना। मैंने सोचा था कि इससे बाद में कनेक्शन (वेबसाकेट सत्र सत्र) आग लगने का कारण बन जाएगा? कोड 200 अच्छा नहीं है?

+1

विशेष रूप से, इस पर एक नज़र डालें plz http://stackoverflow.com/a/14555549/592355 मिल जाएगा: "के रूप में अपने "अप्रत्याशित प्रतिक्रिया कोड: 200" त्रुटि, मुझे लगता है कि क्लाइंट साइड पर आप जिस वेबसॉर्टर यूआरएल का उपयोग कर रहे हैं वह वैध सर्वर-साइड स्क्रिप्ट पर इंगित नहीं कर रहा है, लेकिन बिना किसी जानकारी के टिप्पणी करना मुश्किल है। " – xerx593

+0

क्या जानकारी की आवश्यकता है? मैं टोमकैट 8.0.18 का उपयोग कर रहा हूं और मैं टॉमकैट स्थापना के lib फ़ोल्डर में websocket-api.jar और tomcat-websocket.jar देख सकता हूं ... – smuggledPancakes

+0

नियंत्रक एनोटेशन के बारे में कैसे? (यह वेबसाकेट नमूने में नहीं है) ... क्या आपको नहीं लगता कि हस्तक्षेप हो सकता है? – xerx593

उत्तर

19

कृपया http://procbits.com/connecting-to-a-sockjs-server-from-native-html5-websocket देखें!

आप /websocket संलग्न करने के बाद (अपने यूआरएल के लिए), यह आप त्रुटि

दे देंगे

उत्पत्ति हैडर मूल्य [अमान्य]

पार्स करने में विफल;) है, जो तब बदले में होगा आपको that link पर ले जाता है।

आपको .setAllowedOrigins("*") को अपने addHandler() विधि में जोड़ना होगा, और फिर यह अंत में काम कर सकता है!

+6

बस ऐड-ऑन के रूप में, यदि आप .withSockJs() को सर्वर से कॉल करते हैं और क्लाइंट कोड से/websocket को बंद करते हैं, तो यह भी इस तरह से काम करेगा! मुश्किल सामान, उम्मीद है कि यह भविष्य में लोगों की मदद करता है! मुझे समाधान खोजने में मदद के लिए फिर से xerx593 धन्यवाद! – smuggledPancakes

7

specification पर एक नज़र डालें। http से ws पर प्रोटोकॉल परिवर्तन सिग्नल करने के लिए सर्वर को 101 के साथ प्रतिक्रिया देना चाहिए।

+0

मुझे अभी भी यकीन नहीं है कि क्या करना है, यह लिंक 200 कोड की स्थिति के बारे में और स्पष्टीकरण देता है: http://stackoverflow.com/questions/18190644/what-does-websocket-upgrade-request-fail-upgrade-mean-in-a-context-of-web सर्वर अंत में कुछ गलत होना चाहिए, लेकिन मुझे यकीन नहीं है कि, मैं टोमकैट 8.0 का उपयोग कैसे कर रहा हूं। 18 – smuggledPancakes

2

कृपया जांचें कि 'ws: // localhost: 32768/DspClusterWebServices/myHandler' सही है।

0

मेरे जैसे उन लोगों के लिए जो कोणीय + springboot का उपयोग करते हैं और यह त्रुटि प्राप्त हुई है। कृपया जांचें कि आपने रीडायरेक्ट को सक्षम किया है या सभी गैर एपीआई एंडपॉइंट अनुरोध को index.html पर वापस भेज दिया है या नहीं। जैसे:

@RequestMapping(value = "/**/{[path:[^\\.]*}") 
    public String redirect() { 
     // Forward to home page so that route is preserved. 
     return "forward:/index.html"; 
    } 

आप करते हैं, उसे निष्क्रिय है और आप 101

संबंधित मुद्दे