Как реализовать веб-сокеты на встроенном сервере устройств? - PullRequest
4 голосов
/ 03 февраля 2010

Я работаю с производителем электроники, чтобы встраивать системы управления на основе ЛВС в продукты. Идея состоит в том, чтобы обслуживать интерфейс конфигурации / управления системой через веб-браузер, чтобы клиентам никогда не требовалось устанавливать программное обеспечение. Мы можем общаться с устройством, отправляя и получая последовательные данные через встроенный модуль. Поскольку устройством также можно управлять с помощью интерфейса на передней панели, возникает проблема синхронизации удаленного веб-интерфейса с очень низкой задержкой. Кажется, что веб-сокеты или что-то вроде Push - это то, что нам нужно для обработки событий в реальном времени с сервера на клиенты.

Я использую сервер встроенных устройств Lantronix Mathport AR. Из коробки устройство будет обслуживать любые пользовательские HTML и Java-сервлеты / апплеты. У нас есть возможность установить легкий дистрибутив Linux, если нам нужна большая гибкость. Я не уверен, как реализовать какие-либо приложения на стороне сервера, так как устройство не работает под управлением стандартного Apache. Я считаю, что он использует Боа.

Может кто-нибудь направить меня в правильном направлении, как это сделать?

Ответы [ 3 ]

2 голосов
/ 15 августа 2012

Как уже упоминал Тихауан, начните с чтения спецификации, а также обратите внимание, что некоторые изменения еще продолжаются, хотя веб-сокеты теперь более стабильны, чем 1 год назад.

Ключевым моментом для меня было требование, чтобы данные веб-сокета были полностью текстовыми в формате UTF-8, что прекрасно согласуется с определениями сообщений на основе JSON.

Наша система использует форму встроенного Linux, поэтому мы добавили и использовали следующие библиотеки:

Используя вышеупомянутое в качестве вспомогательных библиотек, мы создали внутренний облегченный «клиент / сервер», который позволял нашим другим программным модулям регистрировать определенные, применимые сообщения веб-сокетов и отвечать по мере необходимости. Работал отлично.

Удачи и наилучших пожеланий,

2 голосов
/ 05 февраля 2010

Некоторая общая информация ... Протокол WebSocket ( черновик спецификации здесь ) - это простой слой поверх TCP. Это означает, что, если у вас уже есть TCP-сервер для вашей платформы, внедрение WebSocket занимает всего несколько часов. Протокол определяет рукопожатие и два способа отправки фреймов данных.

Я настоятельно рекомендую вам начать с прочтения спецификации на 39 страниц.

0 голосов
/ 31 января 2019

Я немного опоздал, но Mozilla опубликовала руководство под названием «Написание серверов WebSocket», которое буквально поможет вам при написании сервера websocket.

Вам уже нужно знать, как работает HTTP, и иметь средний опыт программирования. В зависимости от языковой поддержки может потребоваться знание TCP-сокетов. Цель этого руководства - представить минимальные знания, необходимые для написания сервера WebSocket.

https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers

...