के पीछे कनेक्ट नहीं हैं यह काफी आम समस्या है, लेकिन मुझे अपने विशिष्ट मामले का समाधान नहीं मिल रहा है। मैं ग्लासफ़िश 4.1.1 का उपयोग कर रहा हूं और मेरा एप्लिकेशन Websockets लागू करता है।वेबसाइट्स प्रॉक्सी
एक ग्राहक के पक्ष मैं बस WS-सर्वर से कनेक्ट कर रहा हूँ पर:
var serviceLocation = "ws://" + window.location.host + window.location.pathname + "dialog/";
var wsocket = new WebSocket(serviceLocation + token_var);
एक सर्वर साइड WebSockets @ServerEndpoint कार्यक्षमता के माध्यम से कार्यान्वित किया है और कर रहे हैं पर बहुत ही सामान्य दिखता है:
@ServerEndpoint(value = "/dialog/{token}", decoders = DialogMessageDecoder.class)
public class DialogWebsoketEndpoint {
@OnOpen
public void open(final Session session, @PathParam("token") final String token) { ... }
etc.
}
सब कुछ उस समय तक ठीक काम करता है जब ग्राहक प्रॉक्सी के पीछे कनेक्ट करने का प्रयास करता है। इस परीक्षण का उपयोग: http://websocketstest.com/ मुझे पता चला है कि ग्राहक का कंप्यूटर http-proxy 1.1 के पीछे काम करता है। वह websockets से कनेक्ट नहीं हो सकता है, बस बस आग नहीं लग रहा है। wsoscket.readyState कभी नहीं बनें 1.
ग्राहक इस प्रॉक्सी के पीछे कनेक्ट होने पर भी इस कोड को काम करने के लिए अपने सर्वर एंडपॉइंट को कैसे ट्यून कर सकता हूं?
अग्रिम धन्यवाद!
अद्यतन: मुझे लगता है कि कंप्यूटर पर websocketstest साथ एक स्क्रीनशॉट प्रदान करेगा:
अपने कंप्यूटर पर यह एक बात को छोड़कर इसी तरह लगता है: HTTP प्रॉक्सी: NO।
आशा [यह लिंक] (http://stackoverflow.com/questions/29430503/java-websocket-with-proxy) आपको – Sanjeev
में मदद करता है मैं बुरी खबरों के वाहक बनना नहीं चाहता, लेकिन सभी संभावनाओं में प्रॉक्सी सर्वर स्वयं है जो websockets का सही ढंग से समर्थन नहीं करता है। सॉकेट.आईओ जैसे मतदान के लिए फ़ॉलबैक तंत्र को छोड़कर आप उस प्रोग्राम को दूर नहीं कर सकते हैं। – Gimby
गिम्बी, आपके उत्तर के लिए धन्यवाद, लेकिन http://websocketstest.com/ ने दिखाया कि हैंडशेक (और इको टेस्ट) एसएसएल 443 पोर्ट के माध्यम से सफल था। तो मुझे लगता है कि websockets उस प्रॉक्सी-सर्वर के साथ काम कर सकते हैं। – Luxor