Как стать автором
Обновить
-7
0

Пользователь

Отправить сообщение

Аутентификация для WebSocket и SSE: до сих пор нет стандарта?

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров11K

WebSocket и SSE появились более десяти лет назад, однако до сих пор в стандартах отсутствуют рекомендации по решению задачи аутентификации для подобных соединений.

В статье разберем особенности аутентификации применительно к протоколу WebSocket и технологии Server-Sent Events, обсудим, какие нюансы могут быть, когда клиентская часть находится в браузере, и на что еще стоит обратить внимание, чтобы избежать неочевидных проблем.

А еще заодно поговорим про уязвимость Cross-Site WebSocket Hijacking (CSWSH) и в целом посмотрим на многие вопросы через призму информационной безопасности.

Читать далее
Всего голосов 53: ↑53 и ↓0+53
Комментарии5

RabbitMQ. Часть 2. Разбираемся с Exchanges

Время на прочтение7 мин
Количество просмотров166K

Exchange — обменник или точка обмена. В него отправляются сообщения. Exchange распределяет сообщение в одну или несколько очередей. Он маршрутизирует сообщения в очередь на основе созданных связей (bindings) между ним и очередью.


Exchange не является Erlang-процессом. Из соображений масштабируемости exchange — это строка (ссылка на модуль с кодом, где лежит логика маршрутизации) во встроенной базе данных mnesia. 1 тысяч обменников будут потреблять всего 1МБ памяти.

Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии10

RabbitMQ Streams для сбора и обработки телеметрии умного дома

Время на прочтение10 мин
Количество просмотров9.8K

Традиционно для сценариев поточной обработки с использованием Map-Reduce рассматриваются такие решения как Hadoop/Spark, либо используются конвейерные системы (например Kafka), для которых есть возможность реализовать концепцию потоков (streams) с помощью дополнительных инструментов (в случае с Kafka это Kafka Connect (для подключения к источникам и получателям потока) и Kafka Streams для реализации Map-Reduce на потоке сообщений.

Начиная с версии 3.9 RabbitMQ анонсировал поддержку нового типа очереди, оптимизированного для поточной обработки. В этой статье мы посмотрим на основные отличия очередей RabbitMQ от классического режима очереди сообщений, а также возможные сценарии использования (с примерами кода на Go).

Читать далее
Всего голосов 13: ↑12 и ↓1+12
Комментарии1

Arduino & Modbus

Время на прочтение6 мин
Количество просмотров209K
В предыдущей статье мы соединили открытую платформу домашней автоматизации OpenHAB с контроллером Arduino использовав очень простой, текстовый протокол. Но это решение поставит нас в тупик, если мы захотим подключить наш контроллер к другой системе, что же делать?

Modbus — самый известный и распространенный стандарт в промышленной автоматизации, его поддерживают миллионы устройств по всему миру, эти устройства легко интегрируется в единую сеть и стыкуются с огромным количеством готового программного обеспечения. Попробуем использовать его в нашем проекте?

Что нам необходимо знать об этом стандарте?
Протокол Modbus использует последовательные линии связи (например, RS232, RS485), а протокол Modbus TCP рассчитан на передачу данных по сетям TCP/IP.
Протокол Modbus имеет два режима передачи RTU и ASCII, в режиме ASCII каждый байт передается как два ASCII символа его шестнадцатеричного представления.
В сети Modbus есть только один ведущий, который с заданным интервалом опрашивает несколько ведомых устройств, каждое из которых имеет свой уникальный адрес от 1 до 254, адрес 0 широковещательный и на него отвечают все устройства, так как ведущий в сети один у него нет своего адреса.
В спецификации Modbus определено два типа данных, один бит и 16 битное слово. Данные организованны в четыре таблицы с 16 битной адресацией ячеек, адресация в таблицах начинается с 0. Для доступа к данным из разных таблиц предназначены отдельные команды.
Discrete Inputs 1 бит только чтение
Coils 1 бит чтение и запись
Input Registers 16 бит только чтение
Holding Registers 16 бит чтение и запись

Как нам подключить Modbus устройство к OpenHAB?
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии49

Безопасное управление двигателем постоянного тока

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров11K

Речь о том, как управлять включением и скоростью двигателя постоянного тока на примере сервопривода MC50 так, чтобы сервопривод не сгорел. Несмотря на то, что MC50 был разработан для управления BLDC моторами, он также хорошо подходит и для управления коллекторными двигателями постоянного тока мощностью до 600 Вт. Правда для этого пришлось сделать некоторые незначительные модификации.

Читать далее
Всего голосов 19: ↑18 и ↓1+20
Комментарии23

Установка OpenWRT на CheckPoint T-120 (4200 appliance)

Время на прочтение5 мин
Количество просмотров9.7K

В очередной раз просматривая объявления о продаже компьютерной техники и всяческой электроники наткнулся на интересного зверя - корпоративный файрвол CheckPoint T-120. Быстренько погуглив, нашел технические характеристики этого устройства. Вот они:

Читать далее
Всего голосов 30: ↑30 и ↓0+30
Комментарии21

Продолжаем изучать аппаратные возможности расширения Микротик RBM33G

Время на прочтение17 мин
Количество просмотров7.1K
В своей предыдущей статье я рассказал о возможностях расширения «обвеса» Микротик RBM33G и некоторых особенностях этой платы, в частности интегрированном GPIO-интерфейсе. Я не остановился на достигнутом и продолжил свои опыты, чем и хочу поделиться с читателем. Модули реле через GPIO мы уже подключали к роутеру в предыдущей статье, повторяться не буду. Опишу некоторые другие плюшки.

Чтобы использовать GPIO, в предыдущей статье мы отключали его от второго (serial1) последовательного порта RBM33G. Первый (serial0) порт по умолчанию занят консолью для подключений через DB9-разъем на лицевой панели платы. Предлагаю на время вернуть настройку serial1 по умолчанию:

/system routerboard settings set gpio-function=serial1

Чтобы изменения вошли в силу, нужна перезагрузка:

/system reboot

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии4

Делаем датчик качества воздуха с Modbus RTU на ESP8266 и Arduino

Время на прочтение23 мин
Количество просмотров15K

Что‑то я не нашёл в интернете готового рецепта по созданию Modbus RTU устройства на Arduino и ESP8266. Всё, что попадалось было сильно оторвано от реальности: или предлагали по байтикам разбирать протокол, или для изменения параметров связи предлагали пересобирать прошивку.

А понадобилось мне это за тем, чтобы подключить сенсор CCS811 к тестовому стенду на контроллере с родным протоколом Modbus RTU. Так появилась эта статья.

Сначала мы напишем простой Modbus‑сервер (slave) с изменяемыми пользователем настройками подключения и сервисным режимом, потом добавим к нему сенсор CCS811. В финале подключим устройство к контроллеру Wiren Board: составим шаблон для modbus‑драйвера и напишем простой сценарий автоматизации.

Весь код опубликован на Гитхаб, ссылки вы найдёте в конце статьи.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии11

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность