簡體   English   中英

Socket.io 0.7.9 連接問題

[英]Socket.io 0.7.9 connection issues

我正在嘗試升級到 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);
  });
});

它在某些計算機上連接正常,但在其他計算機上連接不正常。 在所有瀏覽器中都是一樣的。

有誰知道為什么會發生這種情況? 可能有一些本地網絡問題導致這種情況嗎?

更新似乎無法從他們的計算機連接的人正在運行帶有似乎阻止連接的實時 web 屏蔽的防病毒軟件。 當他們關閉它時,它在某些瀏覽器上連接正常......

在過去的兩個月里,我一直在使用 socket.io 和 node.js,像你這樣的一些問題也發生在我身上。

防火牆通常是端口 80 的問題,尤其是與 DNS 一起使用時(例如在公司網絡中),因為它們會與套接字包的標頭進行調和。 一種解決方法可能是嘗試另一個端口。 我的應用程序在端口 80 上有一個 apache 服務器,我的 websocket 在端口 843 上,在 Firefox 和 Chrome 上一切正常。

您可以使用 xhr-polling 回退選項通過添加以下腳本來繞過此類錯誤:

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

xhr-polling 提供的實時性能較差,但非常可靠,適用於大多數瀏覽器和網絡配置。

我希望這能幫到您!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM