#mqtt #v4l2loopback
#mqtt #v4l2loopback
Вопрос:
Я новичок в использовании loopback, и я использую loopback4 (который, я думаю, называется loopback-next)
Я настроил свои контроллеры, модели и репозитории, чтобы иметь возможность поддерживать операции CRUD в mysql, и все в порядке.
Я хочу, чтобы мое приложение loopback также подключалось к серверу MQTT, чтобы я мог подписываться на сообщения от MQTT и реагировать на эти сообщения, создавая объекты в своих репозиториях. Кроме того, я хочу, чтобы существующие методы контроллера могли отправлять сообщения в MQTT (публиковать)
Я изо всех сил пытаюсь понять, как правильно это сделать в экосистеме с обратной связью.
Я не думаю, что хочу создавать сервер, потому что документация описывает сервер как включающий порт прослушивания. Я не хочу, чтобы мое приложение loopback было сервером MQTT. Я просто хочу, чтобы он взаимодействовал с одним.
Аналогично, я не думаю, что это будет мост MQTT или источник данных.
Я подозреваю, что мне нужен сервис. Но я не уверен.
Я был бы признателен за любые советы о том, как добиться этой интеграции.
Спасибо
Ответ №1:
LB4 обладает высокой расширяемостью и является очень хорошим выбором для такой интеграции. Что вам нужно в этом случае, так это иметь компонент MQTT connector. Вы можете обратиться к документации о том, как создать компонент в LB4 здесь и здесь .
Вы также можете обратиться к примеру реализации компонента для авторизации, чтобы быстрее понять.
Комментарии:
1. Я попробовал это предложение и создал свой компонент. Я думаю, что это правильный путь, однако теперь у меня проблема с доступом к репозиториям в моем компоненте. Я думаю, это связано с порядком, в котором работает загрузчик, и когда он привязывает вещи к контексту. В частности, как мой компонент может ссылаться на репозитории, которые уже существуют? (т. Е. Не предоставляются моим компонентом — хотя, держу пари, это на самом деле не имеет значения). Я попытался использовать средство получения репозитория и поместить доступ к репозиторию в метод запуска жизненного цикла (). Но все равно не повезло.
2. Я могу попытаться помочь, если вы можете поделиться кодом, с которым вы пытаетесь.
3. Мне также нужна была функциональность MQTT / AMQP. Я начал создавать свое собственное расширение, которое теперь доступно в npm: npmjs.com/package/lb4-extension-mqtt . Я добавлю readme в ближайшие несколько дней, но не стесняйтесь открывать проблему на github, если вам нужна помощь в этом
4. Я ценю ответы. Спасибо SamyB и Jules. Я решил пойти в другом направлении. Не столько из-за обратного цикла, сколько из-за способа, которым клиент javascript MQTT.js работает. (он допускает множество подписок, но все они поступают через одно и то же событие «при сообщении», поэтому вам нужно проанализировать строки темы и реализовать свой собственный маршрутизатор. — в отличие от наличия отдельных обработчиков для каждой темы, на которую вы подписаны), поэтому я переключился на реализацию своего серверной части в Go. Используя джин-тоник и SQL Boiler. И клиент paho go для mqtt довольно хорош. Хотя этот комментарий не по теме, я подумал, что должен поделиться