2013-07-02 2 views
0

Я пытаюсь реализовать программу сопряжения устройств с nodejs. Сервер реализован кем-то другим, и использует сокет Io:Альтернативный Socket IO Client

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

Но одно из устройств, которые я спаривания не поддерживает WebSocket (HTML5). Возможно ли создать сокет io-клиент без использования сокета io, есть ли альтернативы?

Заранее спасибо.

ответ

0

После многих попыток и уловов, я обнаружил, что браузер, который я использую, не может поддерживать буферизацию в Socket.IO.js. Первый из них производится без буферизации, поэтому первый запрос на спаривание может быть правильно испущен. Итак, я изменил Socket.prototype.setBuffer (true) на Socket.prototype.setBuffer (false). Это может быть не чистое решение, но в моем случае это работает.

1

socket.io поддерживает различные виды транспорта, такие как флеш-гнезда и длинный опрос XHR. Таким образом, вам не нужно использовать другого клиента - он должен работать из коробки даже без поддержки Websocket

Говоря об альтернативах ... есть некоторые клиентские библиотеки, например. для Python, но я не думаю, что в браузере есть что-то, что было в браузере - как я уже говорил, в этом нет необходимости.

+0

большое спасибо за ваш ответ. Когда я проверяю журналы сервера, я видел, что мой браузер может использовать только трансляцию опроса jsonp. Сначала «испускать» все работает нормально, но когда я издаю другое сообщение, на серверных отладочных журналах ничего нет. Есть ли у вас какие-либо идеи, в чем проблема? – miette

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