我正在尝试使用nodejs实现设备配对程序。服务器由其他人实现并使用socket io:
var http = require('http'),
io = require('socket.io');
但是我配对的其中一个设备不支持Websocket(HTML5)。是否可以在不使用socket io的情况下创建套接字io客户端,还有其他选择吗?
提前致谢。
答案 0 :(得分:1)
socket.io支持各种传输,例如flashsockets和XHR long-polling。因此,您不必使用其他客户端 - 即使没有Websocket支持,它也应该开箱即用
说到替代方案......有一些客户端库,例如对于Python,我不认为在浏览器中有任何运行 - 正如我之前所说,没有必要使用它们。
答案 1 :(得分:0)
经过大量尝试和捕获后,我发现我使用的浏览器无法支持Socket.IO.js中的缓冲行为。第一次发射是在没有缓冲的情况下完成的,因此可以正确地发出第一次配对请求。 所以我将Socket.prototype.setBuffer(true)更改为Socket.prototype.setBuffer(false)。这可能不是一个干净的解决方案,但在我的情况下,它的工作原理。
答案 2 :(得分: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