Socket.io 0.7.9连接问题

我正在尝试升级到socket.io 0.7.9,并遇到问题。

我已经使用了socket.io主页的基本示例。 我的服务器是:

var http = require('http'), url = require('url'), https = require('https'), fs = require('fs'), crypto = require('crypto'), io = require('../'), sys = require(process.binding('natives').util ? 'util' : 'sys'), server = http.createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(); }); server.listen(80,"[MYIP]"); var io = io.listen(server), buffer=[]; io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 

它连接在一些计算机上,但不在其他人。 所有的浏览器都是一样的。

有谁知道为什么会发生? 可以有一些本地networking问题导致这个?

更新看来,无法从他们的计算机连接的人正在运行反病毒与实时网盾似乎阻止连接。 当它们closures时,它在一些浏览器上连接正常。

在过去的两个月里,我一直在使用socket.io和node.js,像我这样的问题也发生在我身上。

防火墙通常是端口80的问题,尤其是在与DNS(如在企业networking中)一起使用时,因为它们会使用套接字包的标头进行调整。 一个解决办法可能是尝试另一个端口。 我的应用程序在端口80上有一个Apache服务器,我的websocket在端口843上,在Firefox和Chrome上一切正常。

您可以使用xhr-polling fallback选项通过添加以下脚本来绕过这种types的错误:

 io.set('transports', ['websocket','xhr-polling']); 

xhr-polling提供较less的实时性能,但真正可靠,适用于大多数浏览器和networkingconfiguration。

我希望这能帮到您!