2014-07-02 6 views
21

मैं नोडजेएस और सॉकेट.आईओ का उपयोग शुरू कर रहा हूं। मैं एक नोडजेएस http सर्वर के साथ एक मूल उदाहरण स्थापित करने की कोशिश कर रहा हूं और सर्वर से सॉकेट.आईओ कनेक्शन स्थापित कर रहा हूं।सॉकेटियो ERR_CONNECTION_REFUSED

मैं कोणीय जेएस का भी उपयोग कर रहा हूं और मूल रूप से जो मैं चाहता हूं वह यह है कि जब कोई उपयोगकर्ता बटन दबाता है तो सर्वर से कनेक्शन स्थापित होता है।

server.js

var http = require('http'); 
var server= http.createServer(handler); 
var io = require('socket.io')(server); 

server.listen(8080); 

function handler(req, res) { 
    res.writeHead(200); 
    res.end('Hello Http'); 
} 

io.on('connection', function (socket){ 
    socket.emit('news', { hello: 'world' }); 
    console.log('connected!'); 
}); 

app.js

: हालांकि, जब मैं यह कोशिश मैं

GET http://localhost/socket.io/?EIO=2&transport=polling&t=1404288173776-3 net::ERR_CONNECTION_REFUSED

यहाँ मेरी कोड है यह त्रुटि प्राप्त

var app = angular.module('testApp', ['ngRoute']); app.controller('TestCtrl', function ($scope){ $scope.msg= ""; $scope.try = function(){ $scope.msg= "ALO" var socket = io('http://localhost'); socket.on('news', function (data) { console.log(data); }); }; }); 

और मेरे test.html फ़ाइल पर:

<body ng-controller="TestCtrl"> 

    <h2>{{msg}}</h2> 
    <button ng-click="try()">Try</button> 

    <script src="../js/angular.min.js"></script> 
    <script src="../js/angular-route.min.js"></script> 
    <script src="../js/app.js"></script> 

    <script src="../node_modules/socket.io/node_modules/socket.io-client/socket.io.js"></script> 

<!-- <script src="/socket.io/socket.io.js"></script> --> 

</body> 

मुझे लगता है कि त्रुटि पथ जब socket.io.js सीधे का उपयोग कर मैं भी कोशिश की है सहित स्थानीय होस्ट मैं उपयोग करने के लिए संबंधित कुछ हो सकता है: में 8080 पथ क्योंकि मैंने पढ़ा है यह एक समाधान हो सकता है लेकिन यह काम नहीं करता है। तो कृपया, मैं दी गई किसी भी मदद की सराहना करता हूं। धन्यवाद!

उत्तर

13

यदि आपका सर्वर पोर्ट 8080 पर सुन रहा है, तो आपको उस पोर्ट से कनेक्ट करने की आवश्यकता है।

var socket = io('http://localhost:8080'); 

और जैसा कि आप एक सापेक्ष पथ का उपयोग कर रहे हैं, socket.io lib ठीक से परोसा जाएगा।

<script src="/socket.io/socket.io.js"></script> 
+1

मैं पहले इन दो समाधान की कोशिश की (खेद है कि मैं उल्लेख नहीं था), लेकिन मैं socket.io.js पथ के लिए एक फ़ाइल नहीं मिली त्रुटि मिलती है, यही कारण है कि मैं एक दूसरे की कोशिश की है । मुझे नहीं पता कि समस्या क्या हो सकती है। मैंने spm.io का उपयोग करके socket.io को स्थापित किया है और socket io युक्त node_modules फ़ोल्डर कुछ कारणों से विंडोज़ पर मेरे उपयोगकर्ता फ़ोल्डर में हैं और प्रोग्राम फ़ाइलों में मौजूद node_modules फ़ोल्डर में नहीं हैं। क्या समस्या के साथ कुछ करने के लिए क्या हो सकता है? मैंने यह देखने के लिए वैश्विक स्तर पर स्थापित करने का प्रयास किया कि क्या यह स्थान फ़ोल्डर बदल गया है, लेकिन यह नहीं हुआ:/मुझे नहीं पता कि – tampeta

3

यह पता चला है कि सॉकेट.ओ एक मजेदार फ़ोल्डर में स्थापित किया जा रहा था और इसलिए इसे पहचाना या लोड नहीं किया जा रहा था। मैंने पैकेज.जेसन बनाकर और निर्भरताओं को घोषित करके हल किया ताकि जब मैं एनपीएम इंस्टॉल करता हूं तो यह फ़ोल्डर को सही जगह पर इंस्टॉल करता है।

इसके अलावा बेन फॉर्च्यून सही था और मैं भी संशोधित कि ... मुझे आशा है कि यह अन्य लोगों को मदद मिलती है क्योंकि मैं बहुत संघर्ष करना पड़ा :) कि यह पता लगाने की

40

मैं ठीक उसी मुद्दे का सामना करना पड़ा। मुझे [email protected]~0.9 में ERR_CONNECTION_REFUSED नहीं दिखाई दिया। Socket.io को 1.3 में अपग्रेड करने के बाद त्रुटि आई।

मैं बस ग्राहक के पक्ष निर्माता से URL को निकाल कर इसे हल:

बदलें

var socket = io('http://localhost'); 

करने के लिए
var socket = io(); 

रूप socket.io ट्यूटोरियल पता चला: http://socket.io/get-started/chat/

+0

का प्रयास करने के लिए और क्या है, निहित यूआरएल का उपयोग करके यह मेरे लिए भी तय है, धन्यवाद! – Dan

+0

अच्छा जवाब। उदाहरण के अनुसार बस पूरक है: "ध्यान दें कि जब मैं io() को कॉल करता हूं तो मैं किसी भी यूआरएल को निर्दिष्ट नहीं कर रहा हूं, क्योंकि यह पेज परोसने वाले होस्ट से कनेक्ट करने का प्रयास करने के लिए डिफ़ॉल्ट है।" –

0

मैं चैट करने के लिए अपने क्लाउड सर्वर के आईपी तक पहुंच रहा था। अचानक सर्वर नीचे था। तब मुझे यह मतदान त्रुटि मिली। अंत में मुझे पता चला कि समस्या उस सर्वर के साथ है। सुनिश्चित करें कि आपका सर्वर ऊपर है।

मैंने आईपी पता शून्य में बदल दिया।कृपया अपने सर्वर पते मान

socket = io.connect('0.0.0.0:8110'); 
संबंधित मुद्दे