Написание Кода Для Node.js В Стиле «Конечный Автомат»

Вы пишете на Node.js сервер, который принимает входящие TCP-соединения и ведет нетривиальный диалог с клиентами по нестандартному протоколу? Возможно, вас заинтересует пример, который я разрабатываю в своих проектах.

Что я подразумеваю под нетривиальным диалогом? Давайте сравним.

Удаленный датчик температуры, который связывается с сервером и после установления соединения записывает в сокет несколько байт своего идентификатора, а затем несколько байт текущей температуры — это примитив.

Тот же датчик, который может получать команды от сервера на изменение частоты измерений или периода усреднения измеряемой величины, уже сложнее.

Добавьте к этому, например, функционал отправки обновлений прошивки на датчик и код запросто может потерять лаконичность.

В таких случаях я организую свой код в стиле «конечного автомата», не претендуя, однако, на соответствие канонам теории автоматов.

Пример этой статьи размещен здесь: github.com/kityan/fsmConnection .

Ниже я объясню несколько ключевых моментов.

Основной код приложения.

Рассмотрим только серверную часть.

Код очень прост:

   

var net = require('net'); var ClientConnection = require('.

/ClientConnection.js'); var config = {"socketTimeout":3000, "port": 30000} net.createServer(function(socket) {var clientConnection = new ClientConnection(socket, config);})

Теги: #node.js #node.js #fsm #конечный автомат #JavaScript #node.js
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.