无法读取未定义的属性'emit'

时间:2016-04-05 21:37:59

标签: javascript node.js cordova sockets socket.io

我发现一些有趣的代码可以让我的手机在我的浏览器中操作但是它有点过时我想因为当我尝试运行服务器代码时它会给我一个错误。它说房产“发射”是未完成的。

在套接字上。 control.js:54:12 在EmitOne events.js:77:13 等等 等

现在我做了一些研究,很可能它与我已经安装的套接字版本(0.9.16)有关。但之后我尝试了更多,包括最新版本(1.4.5)但是没有解决它。

服务器确实启动但是一旦我使用手机连接它就会崩溃。

var http = require('http');
var express = require('express');
var socket = require('socket.io');

var app = express();

var server = http.createServer(app).listen((1234), function(){
  console.log("Express server on)");
});

var io = socket.listen(server);

app.get('/index.html', function(req, res){
  res.sendfile(__dirname + '/index.html');
});

app.get('/controller.html', function(req, res){
  res.sendfile(__dirname + '/controller.html');
});

app.get('/gyro.html', function(req, res){
  res.sendfile(__dirname + '/gyro.html');
});

app.get('/cordova-2.0.0.js', function(req, res){
  res.sendfile(__dirname + '/cordova-2.0.0.js');
});

var nextId = 0;
var display;
var sockets = [];

io.sockets.on('connection', function(socket){

  socket.on('init', function(data){
    if(data === 0){
      display = socket;
    }
    else{
      sockets[nextId] = socket;
      sockets[nextId].emit('ID', nextId);
      display.emit('newController', nextId);
      nextId++;
    }
  });

  socket.on('input', function(input){
    display.emit('update', input);
  });

  socket.on('disconnect', function(){
    var socketIndex = sockets.indexOf(socket);

    display.emit('destroy', socketIndex);
    console.log("DESTROY: " + socketIndex);
    sockets.splice(socketIndex, 1);
  });

});

任何指针都会受到欢迎!

0 个答案:

没有答案