【发布时间】:2011-10-28 05:46:22
【问题描述】:
我正在尝试升级到 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);
});
});
它在某些计算机上连接正常,但在其他计算机上连接不正常。在所有浏览器中都是一样的。
有人知道为什么会这样吗?可能有一些本地网络问题导致这种情况吗?
更新 似乎无法从他们的计算机连接的人正在运行带有似乎阻止连接的实时网络防护罩的防病毒软件。当他们关闭它时,它在某些浏览器上连接正常......
【问题讨论】:
-
Socket.io 在 chrome 14 和 15 上存在问题,因为它们更改了 websocket 版本。就我个人而言,我已经关闭了 websocket 传输,以便在事情解决时让事情可靠地工作。
-
我在 OS 10.6.8 上测试了您的演示 Safari 的 websocket 性能良好,Firefox 的 xhr 性能良好,Opera 的 jsonp 性能良好,Chrome 15 与 websocket 的性能比较差。 (在 Chrome 操作系统上相同)
-
它似乎影响了使用 Avast 杀毒软件的用户,该杀毒软件因阻止 websockets 而臭名昭著。 Avast 不喜欢端口 80,所以我必须将其更改为其他内容。感谢您的帮助@generalhenry。
标签: node.js websocket socket.io