2013-04-25 3 views
6

मेरे पास यह वेब ऐप एक्सप्रेस और socket.io के साथ लिखा गया है, node.js का उपयोग करके, ऐप स्थानीयहोस्ट पर शानदार ढंग से काम करता है, लेकिन जब मैं अपने ec2 सर्वर पर धक्का देता हूं, तो यह 20 सेकेंड के लिए कनेक्ट होता है और फिर डिस्कनेक्ट करता है, और फिर फिर से कनेक्ट होता है। ..एक ec2 उदाहरण पर socket.io का उपयोग कर "websocket कनेक्शन अमान्य" त्रुटि प्राप्त कर रहा है?

रूप

warn - websocket connection invalid 
info - transport end 

सर्वर

app = express() 
server = http.createServer(app) 
io = require('socket.io').listen(server) 

ग्राहक नोड कंसोल पर मुझे त्रुटि है

socket = io.connect() 

मैं जानता हूँ कि समस्या, मेरे कोड के साथ नहीं है, क्योंकि मैं पूरी तरह से स्थानीय होस्ट पर वेब अनुप्रयोग का परीक्षण किया है, तो केवल एक समस्या है, जहां इस कोड चल रहा है, जो मेरे EC2 उदाहरण है?

+0

आप सीधे या एक ईएलबी के माध्यम से उदाहरण से कनेक्ट करते हैं? –

+0

मैं सीधे उदाहरण के लिए कनेक्ट? – unknown

+0

क्या कोई इस प्रश्न का उत्तर दे सकता है, यह वास्तव में मुझे गड़बड़ कर रहा है! – unknown

उत्तर

2

सुनिश्चित करें कि आप अपने ec2 पर नोड, एक्सप्रेस और सॉकेट.io के नवीनतम संस्करणों का उपयोग कर रहे हैं। साथ ही, वर्तमान में उपयोग की गई संस्करणों के बारे में कुछ स्थानीय डेटा और ec2 उदाहरण पर कुछ डेटा प्रदान करें।

1

आपकी स्थानीय मशीन पर चलने से आपको नेटवर्क विलंबता, एनएटी मुद्दों या फ़ायरवॉल से निपटने की ज़रूरत नहीं है। ईसी 2 पर चलने से आप सभी को मिलते हैं।

वेब सॉकेट अपेक्षाकृत नए और अस्थिर हैं। तो यह सुनिश्चित करने के लिए शुरू करें कि आप नवीनतम संस्करण चला रहे हैं (और हमें बताएं कि वे क्या हैं)। शायद आपकी स्थानीय मशीन पर स्थापित socket.io का संस्करण आपके ईसी 2 सर्वर में स्थापित संस्करण से अलग है।

4

वहाँ कई संभावित कारण हो सकता है आपको यह त्रुटि प्राप्त कर सकते हैं:

  1. आप ब्राउज़र है कि आंशिक रूप से या WebSockets का समर्थन नहीं करता उपयोग कर रहे हैं। आप जांच सकते हैं कि आपका ब्राउज़र websockets here का समर्थन करता है या नहीं।
  2. प्रॉक्सी का उपयोग करना जो वेबसाईट का समर्थन नहीं करता है। यदि आपके क्लाइंट और आपके नोड सर्वर के बीच कुछ सर्वर (लोड बैलेंसर) है जो वेबसाईट का समर्थन नहीं करता है।
  3. आप socket.io संस्करण 0.9.1/0.9.1-1 का उपयोग कर रहे हैं। यह व्यवहार इस संस्करण के लिए एक रिपोर्ट bug है। तो नवीनतम socket.io संस्करण में अपग्रेड करें जो 0.9.14 है।
  4. ब्राउज़र कनेक्टिविटी फ़ायरवॉल/अवरुद्ध है।
  5. कोड संबंधित समस्या।
1

यदि कनेक्शन खोने से पहले उन 20 सेकंड के दौरान कोई गतिविधि नहीं है, तो एक संभावना यह है कि जीवित रहना बहुत कम है।

इसी तरह की समस्या के लिए https://groups.google.com/forum/?fromgroups=#!topic/socket_io/RUv70BguZ-U देखें। कनेक्शन को खोलने के लिए दिल की धड़कन का उपयोग करने का समाधान था।

एक socket.io दिल की धड़कन के बारे में अधिक बिट अगर आप पहले से ही उन्हें प्रयोग नहीं कर रहे: Advantage/disadvantage of using socketio heartbeats

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