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

时间:2015-02-20 18:52:52

标签: node.js socket.io

将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;

});

1 个答案:

答案 0 :(得分:0)

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库(例如,两端都使用相同的版本)。