【问题标题】:Alternative Socket IO Client替代的 Socket IO 客户端
【发布时间】:2013-06-29 10:22:08
【问题描述】:

我正在尝试使用 nodejs 实现设备配对程序。服务端是别人实现的,使用socket io:

var http = require('http'),
io = require('socket.io');

但是我正在配对的设备之一不支持 Websocket(HTML5)。不使用socket io是否可以创建socket io客户端,有没有其他选择?

提前致谢。

【问题讨论】:

    标签: html node.js websocket socket.io


    【解决方案1】:

    socket.io 支持各种传输,例如 flashsockets 和 XHR 长轮询。因此,您不必使用其他客户端 - 即使没有 Websocket 支持,它也应该开箱即用

    说到替代方案...有一些客户端库,例如对于 Python,但我认为浏览器中不需要运行任何东西 - 正如我之前所说,不需要它们。

    【讨论】:

    • 非常感谢您的回答。当我检查服务器日志时,我发现我的浏览器只能使用 jsonp 轮询传输。起初“发出”一切正常,但当我发出另一条消息时,服务器端调试日志中没有任何内容。你有什么想法,问题可能是什么?
    【解决方案2】:

    经过多次尝试,我发现我使用的浏览器不支持 Socket.IO.js 中的缓冲行为。第一次发出没有缓冲,因此可以正确发出第一次配对请求。 所以我把 Socket.prototype.setBuffer(true) 改成了 Socket.prototype.setBuffer(false)。这可能不是一个干净的解决方案,但在我的情况下它有效。

    【讨论】:

      【解决方案3】:

      您可以配置要使用的回退类型

      io.configure("production", function() {
        io.enable("browser client minification");
        io.enable("browser client etag");
        io.enable("browser client gzip");
        io.set("transports", ['websocket', 'jsonp-polling']);
        io.set("log level", 1);
      });
      
      io.configure("development", function() {
        io.set("transports", ['websocket', 'jsonp-polling']);
      });
      

      你可以在这里看到所有选项on the wiki

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-27
        • 2018-08-23
        相关资源
        最近更新 更多