Как создать несколько соединений в Angular 6 с использованием библиотеки ngx-mqtt? - PullRequest
0 голосов
/ 11 января 2019

Мне нужно подключиться к нескольким брокерам из одного приложения Angular 6.

При импорте MqttModule мы передаем ему конфигурацию как:

imports: [...
MqttModule.forRoot(MQTT_SERVICE_OPTIONS),
...]

Я пытался создать 2 отдельных модуля на одном и том же уровне иерархии и передать другую конфигурацию и настроить соединения, но это не работает.

Я думаю, что он создает службы на корневом уровне, и мы не можем создать отдельное соединение в разных модулях.

Можем ли мы даже создать несколько соединений? Если да, то как?

1 Ответ

0 голосов
/ 15 июля 2019

Я пробовал так много вещей, но единственная работа для меня - ниже (Angular 8)

установите следующую команду в вашем проекте

npm в буфере - сохранить

npm i -S process

npm i mqtt --save

Добавить следующую строку в polyfills.js в конце

(window as any)['global'] = window;
global.Buffer = global.Buffer || require('buffer').Buffer;

import * as process from 'process';
window['process'] = process;

добавьте следующий код в app.component.ts

import { Component } from '@angular/core';
import * as mqttt from "mqtt";

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'checkMqttFromWeb';
  constructor(){
    var client = mqttt.connect('mqtt://192.168.0.29:1884')
    client.on('connect', function () {
      client.subscribe('fooBar', function (err) {
        if (!err) {
          client.publish('fooBar', 'Hello mqtt')
        }
      })
    })

    client.on('message', function (topic, message) {
      // message is Buffer
      console.log(message.toString())
      client.end()
    })
  }
}

Запустите ваше приложение, используя ng serve надеюсь, что это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...