2013-02-07 66 views
8

पर कॉल नहीं कर सकता है मैं एक साधारण node.js ऐप बना रहा हूं और socket.io का उपयोग करने का इरादा रखता हूं लेकिन अब तक मैं सर्वर को शुरू नहीं कर सकता।सॉकेट.आईओ

यह मेरा कोड है:

var http = require('http'), 
    io = require('socket.io'), 
    fs = require('fs'); 

http.createServer(function(request, response){ 
    fs.readFile(__dirname + '/index.html', function(err, data){ 
     if(err){ 
      response.writeHead(500, {'Content-Type': 'text/plain'}); 
      return response.end('Error'); 
     } 
     response.writeHead(200, {'Content-Type': 'text/html'}); 
     response.end(data); 
    }); 
}).listen(1337); 

io.sockets.on('connection', function(socket){ 
    socket.emit('pic', { addr: '/pic.jpg' }); 
    socket.on('status', function(data){ 
     console.log(data); 
    }) 
}) 

और इस उत्पादन मैं प्राप्त है:

[[email protected] node]# node server.js 

/srv/node/server.js:16 
io.sockets.on('connection', function(socket){ 
     ^
TypeError: Cannot call method 'on' of undefined 
    at Object.<anonymous> (/srv/node/server.js:16:12) 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.runMain (module.js:492:10) 
    at process.startup.processNextTick.process._tickCallback (node.js:244:9) 
[[email protected] node]# 

Socket.IO NPM द्वारा स्थापित किया गया था और में/जड़/node_modules/सॉकेट रहते हैं लगता है। io इसके कारण मैंने उस निर्देशिका का एक sym-link (ln -s)/srv/node बनाया है जहां मेरा सर्वर रूट है।

उत्तर

25

io सिर्फ एक पुस्तकालय है। आप एक विशिष्ट इंस्टेंस:

var http = require('http'), 
    io = require('socket.io'), 
    fs = require('fs'); 

var serv = http.createServer(function(request, response){ 
    fs.readFile(__dirname + '/index.html', function(err, data){ 
     if(err){ 
      response.writeHead(500, {'Content-Type': 'text/plain'}); 
      return response.end('Error'); 
     } 
     response.writeHead(200, {'Content-Type': 'text/html'}); 
     response.end(data); 
    }); 
}); 
serv.listen(1337); 

// Bind socket.io to server 
var serv_io = io.listen(serv); 
serv_io.sockets.on('connection', function(socket){ 
    socket.emit('pic', { addr: '/pic.jpg' }); 
    socket.on('status', function(data){ 
     console.log(data); 
    }) 
}); 
से कनेक्ट करना सुनना चाहते हैं