Pull to refresh
-7
0
Send message

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

Level of difficultyMedium
Reading time21 min
Views8.9K

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

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

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

Читать далее
Total votes 53: ↑53 and ↓0+53
Comments5

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

Reading time7 min
Views160K

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


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

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments10

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

Reading time10 min
Views9.4K

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

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

Читать далее
Total votes 13: ↑12 and ↓1+12
Comments1

Arduino & Modbus

Reading time6 min
Views208K
В предыдущей статье мы соединили открытую платформу домашней автоматизации 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?
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments49

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

Level of difficultyMedium
Reading time7 min
Views11K

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

Читать далее
Total votes 19: ↑18 and ↓1+20
Comments23

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

Reading time5 min
Views9.6K

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

Читать далее
Total votes 30: ↑30 and ↓0+30
Comments21

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

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

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

/system routerboard settings set gpio-function=serial1

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

/system reboot

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments4

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

Reading time23 min
Views14K

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

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

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

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments11

Information

Rating
4,693-rd
Registered
Activity