Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Socket.IO 1.4.3文档中的示例给出了错误_Node.js_Socket.io_Socket.io 1.0 - Fatal编程技术网

Node.js Socket.IO 1.4.3文档中的示例给出了错误

Node.js Socket.IO 1.4.3文档中的示例给出了错误,node.js,socket.io,socket.io-1.0,Node.js,Socket.io,Socket.io 1.0,我一直在尝试执行Socket.IO文档中的第一个简单示例,但我尝试过的方法似乎都不起作用 这是我的密码: var io = require('socket.io'); io.listen(server); io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log

我一直在尝试执行Socket.IO文档中的第一个简单示例,但我尝试过的方法似乎都不起作用

这是我的密码:

var io = require('socket.io');
io.listen(server);

io.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});
下面是错误日志:

/home/chetan/project/app.js:70
io.on('connection', function (socket) {
   ^
TypeError: Object function Server(srv, opts){
  if (!(this instanceof Server)) return new Server(srv, opts);
  if ('object' == typeof srv && !srv.listen) {
    opts = srv;
    srv = null;
  }
  opts = opts || {};
  this.nsps = {};
  this.path(opts.path || '/socket.io');
  this.serveClient(false !== opts.serveClient);
  this.adapter(opts.adapter || Adapter);
  this.origins(opts.origins || '*:*');
  this.sockets = this.of('/');
  if (srv) this.attach(srv, opts);
} has no method 'on'
    at Object.<anonymous> (/home/chetan/project/app.js:70:4)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3
这将生成以下错误:

io.sockets.on('connection', function (socket) {
           ^
TypeError: Cannot call method 'on' of undefined
    at Object.<anonymous> (/home/chetan/project/app.js:70:12)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

你认为可能有什么问题?

只是浏览了一下网页就解决了这个问题

我刚刚发现我使用的设计模式与他们的不同。当socket.io侦听服务器时,它返回一个必须用于通信的对象

下面是一段工作代码,例如:

var io = require('socket.io');
var websocket = io.listen(server);

websocket.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});
此外,您可以使用以下方法在单独的文件中对websocket服务器的逻辑进行编码。假设文件名为websocketProcessor.js,代码如下:

var io = require('socket.io');
var websocket = io.listen(server);

require('./websocketProcessor')(websocket);
var io = require('socket.io');
var websocket = io.listen(server);

require('./websocketProcessor')(websocket);