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