Как реализовать веб-сокеты на встроенном сервере устройств?

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

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

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

3 ответа

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

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

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

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

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

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

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

Я немного опоздал, но Mozilla опубликовала руководство под названием "Написание серверов WebSocket", которое буквально проведет вас через написание сервера веб-сокетов.

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

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

Другие вопросы по тегам