2015-05-24 9 views
5

मेरे पास socket.io का उपयोग करके एक एप्लिकेशन है, और socket.emit() मोबाइल क्रोम (एंड्रॉइड और आईओएस पर) से काम नहीं कर रहा है। मैं देख सकता हूं कि ब्राउज़र में socket.emit() निष्पादित हो रहा है। लेकिन socket.on() में मेरे सर्वर-साइड console.log कथन चल रहे नहीं हैं, इसलिए मुझे लगता है कि संदेश वहां नहीं जा रहे हैं। मुझे कंसोल में कोई त्रुटि नहीं दिखाई देती है।socket.emit मोबाइल क्रोम में काम नहीं कर रहा है (लेकिन यह गुप्त मोड में काम करता है)

दिलचस्प बात यह है कि, सबकुछ गुप्त मोड में ठीक काम करता है, साथ ही सफारी जैसे अन्य मोबाइल ब्राउज़र में सभी मोड भी काम करता है।

कोई समाधान, या डिबगिंग के साथ मदद उपयोगी होगी।

संपादित करें:

क्लाइंट पक्ष कोड

$(document).ready(function(){ 
    socket = io(); 
    $(".check").on("submit", function(event){ 
     event.preventDefault(); 
     ga('send','event','evt','evt123'); 
     socket.emit('checkRoom', { rId: "12345", pId: "johndoe"}); 
    }); 
}); 

सर्वर साइड कोड

io.on('connection', function(socket) { 
    console.log('a user connected'); 

    socket.on('check',function(e){ 
     console.log('Entered check'); 
     socket.emit('check','server message'); 
    }); 
}); 

EDIT2:

मैं मैन्युअल रूप से निर्दिष्ट क्लाइंट की तरफ socket.io-1.3.5.js फ़ाइल (के बजाय का उपयोग कर डिफ़ॉल्ट /socket.io/socket.io.js) और प्रारंभ करना शुरू किया कंसोल में यह त्रुटि आईएनजी:

WebSocket connection to 'ws://mydomain.com/socket.io/?EIO=3&transport=websocket&sid=wr8UpsT45lrWHtpMACJs' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT 
+0

हमें इस बारे में कोई विचार करने के लिए प्रासंगिक कोड देखने की आवश्यकता होगी कि यहां क्या हो रहा है। – jfriend00

+0

आप वास्तव में कैसे देखते हैं कि 'socket.emit' क्लाइंट से काम कर रहा है? क्या आपने इसे पहले या बाद में 'console.log' रखा था? क्या आप अभी भी सर्वर पर "उपयोगकर्ता से कनेक्ट" हो रहे हैं जिसका मतलब है कि सॉकेट कनेक्ट होता है लेकिन क्लाइंट से निकलता नहीं मिलता है? सर्वर और क्लाइंट दोनों पर कुछ 'socket.emit/on ('test') '(उपयुक्त कंसोल लॉग संदेशों के साथ) डालने का प्रयास करें जो किसी भी बातचीत के बिना ट्रिगर करता है यह देखने के लिए कि कम से कम पहले संपर्क में संचार होता है या नहीं समस्याएं बाद में शुरू होती हैं। – laggingreflex

+0

@ लैगिंगफ्लेक्स: मैंने ब्रेकपॉइंट्स का उपयोग यह देखने के लिए किया है कि कोड 'socket.emit' पर जा रहा है। मैंने यह जांचने के लिए बहुत सरल कोड के साथ प्रयास किया है कि पहला संपर्क हो रहा है या नहीं, और मैं देख सकता हूं कि संदेश सर्वर पर नहीं जा रहे हैं। –

उत्तर

0

पोर्ट 80 पर कुछ मोबाइल नेटवर्क प्रॉक्सी अनुरोध, जो वेब सॉकेट तोड़ सकता है। यह समझाएगा कि यह अन्य ब्राउज़रों या गुप्त में क्यों काम करेगा, लेकिन आप अपने सर्वर और क्लाइंट को एक अलग बंदरगाह से कनेक्ट करने के लिए, इस परिकल्पना का परीक्षण कर सकते हैं। 81.

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