1

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

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

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

提前致谢。

4

3 回答 3

1

socket.io 支持各种传输,例如 flashsockets 和 XHR 长轮询。所以你不必使用不同的客户端——即使没有 Websocket 支持,它也应该开箱即用

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

于 2013-07-02T06:42:55.180 回答
0

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

于 2013-07-02T20:40:36.983 回答
0

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

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

于 2013-07-02T20:47:30.633 回答