2013-08-21 7 views
2

Мне нужно отправить изображение клиенту всякий раз, когда он доступен на сервере. Клиент не браузер, а какое-то устройство (linux box) за NAT (сеть 3G), которое получит изображение в виде файла, напишет его на диск, а затем отобразит его на экране (здесь нет браузера).nodejs как клиент websocket

Я новичок в nodejs и websocket.

Могу ли я использовать nodejs как клиент websocket в устройстве и nodejs как сервер? Можете ли вы привести пример использования nodejs для выполнения клиента websocket?

В этом случае, узлы могут обнаружить потерю сети 3G, а затем возобновить или перезапустить веб-раскладку?

Что произойдет, если произойдет потеря связи, когда сервер nodejs нажимает изображение на устройство nodejs (client)? есть ли какое-либо решение для резюме?

как насчет двоичных Js для обработки передачи файлов между 2 nodejs?

Могу ли я сделать это с помощью некоторого паба/суб-меканизма с использованием MOM, такого как ActiveMQ?

ответ

2

Socket.io (возможно, это то, что вы хотите использовать на стороне сервера) имеет client module, который работает в узле. Он поддерживает поддержание соединения с сервером.

Что вы, вероятно, захотите сделать, это не нажмите на изображение самостоятельно через соединение WebSocket. Вместо этого отправьте сообщение «новое изображение доступно» через WebSocket, и когда клиент получит сообщение, выполните обычный HTTP-запрос GET на сервер, чтобы загрузить изображение.

Поскольку вы делаете обычный HTTP-запрос, вы можете использовать заголовок Range, если вам нужно возобновить прерванную загрузку.

+0

Спасибо. и для заголовка Range, есть ли что-то делать на сервере nodejs, чтобы он поддерживал это, или nodejs будет знать, где возобновить? и если я хочу иметь некоторую веб-консоль для мониторинга передач в реальном времени с помощью кнопки повторной отправки, какие модули или рамки мне нужны с nodejs (на стороне сервера и на стороне клиента)? – SemBY

+0

Connect/Express '['res.sendfile()'] (http://expressjs.com/api.html#res.sendfile) (и «статическое» промежуточное ПО) поддерживает «Range». – josh3736

Смежные вопросы