节点 socketIO 升级 0.9.17 到 1.34 中断应用程序

node socketIO upgrade 0.9.17 to 1.34 breaks application

将 socketIO 从 0.9.17 升级到 1.3.4 后,我的应用程序不再运行。

有人可以帮忙吗?这是我的应用

通常当我启动时我应该看到

info   -socket.io started

现在我什么也没看到,也没有错误。

var express = require('express');
var app = express();
var server = require('http').createServer(app);

var io = require('socket.io').listen(server,{transports:['flashsocket', 'websocket', 'htmlfile', 'xhr-polling', 'jsonp-polling']});

var port = Number(8080);
server.listen(port);

app.use(express.static(__dirname + '/'));

var temp;
 var _this = this;

io.on('connection', function (socket) {
    console.log('connection '+socket)
        socket.on("data",function(d){console.log('data from flash: ',d);});
        socket.emit("message","wtfwtwftwftwf hello from server");
        socket.on('disconnect', function (socket) {
            console.log("disconnect");
        });

        console.log('_this ='+_this);
        _this.socket=socket;

});

current socket.io documentation 建议这与您所拥有的略有不同:

var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server, {transports:['flashsocket', 'websocket', 'htmlfile', 'xhr-polling', 'jsonp-polling']});

var port = Number(8080);
server.listen(port);

app.use(express.static(__dirname + '/'));

var temp;
var _this = this;

io.on('connection', function (socket) {
    console.log('connection '+socket);
    socket.on("data",function(d){console.log('data from flash: ',d);});
    socket.emit("message","wtfwtwftwftwf hello from server");
    socket.on('disconnect', function (socket) {
        console.log("disconnect");
    });

    console.log('_this ='+_this);
    _this.socket=socket;
});

此外,您对 _this.socket=socket; 的分配看起来很麻烦,因为这似乎一次只适用于一个连接的客户端。只要您有多个 webSocket 连接,第二个连接就会覆盖第一个。

此外,您应该绝对确保在客户端和服务器上使用兼容的 socket.io 库(例如,两端的版本相同)。