angular + mqtt
After searching and trying out different things for a while, I found this solution, you can use this library if you want to use MQTT in your project.
Install it using npm install ngx-mqtt --save
Usage: app.module.ts
import { Observable } from 'rxjs/Observable'; import { IMqttMessage, MqttModule, MqttService } from 'ngx-mqtt'; export const MQTT_SERVICE_OPTIONS = { hostname: '13.127.53.13', port: 9001, path: '/mqtt' }; export function mqttServiceFactory() { return new MqttService(MQTT_SERVICE_OPTIONS); } @NgModule({ imports: [ BrowserModule, HttpModule, MqttModule.forRoot({ provide: MqttService, useFactory: mqttServiceFactory }), IonicModule.forRoot(MyApp) ]
And then you can use it in your page like: (ex: home.ts file)
import { IMqttMessage, MqttModule, MqttService } from 'ngx-mqtt'; import { Observable } from 'rxjs/Observable'; export class HomePage { constructor( private _mqttService: MqttService) { this._mqttService.observe('home/door').subscribe((message: MqttMessage) => { this.sensor1 = message.payload.toString(); console.log(this.sensor1); }); } publishMessage() { this._mqttService.unsafePublish("home/button", "on", {qos: 0, retain: false}); }