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