【发布时间】:2019-01-24 07:05:18
【问题描述】:
我使用 Mosquitto 库创建了一个 MQTT 代理。我创建了 1 个 Angular 5 Ionic 3 移动应用程序,它充当 paho 客户端。我能够启动 mqtt 代理。当我在 Android 设备上运行移动应用程序时。它尝试连接到代理,但我收到“客户端上的套接字错误,正在断开连接”。马上。
我想知道如何解决这个问题。 我也想知道如何在 mac 上创建一个 Paho 代理
Musquitto 代理:以下步骤用于在 mac OSX 上安装和运行代理
/usr/bin/ruby -e "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew
/install/master/install)"
brew install mosquitto
/usr/local/sbin/mosquitto -c
/usr/local/etc/mosquitto/mosquitto.conf
这是我从终端得到的响应
1548310503: mosquitto version 1.5.1 starting
1548310503: Config loaded from /usr/local/etc/mosquitto/mosquitto.conf.
1548310503: Opening ipv6 listen socket on port 1883.
1548310503: Opening ipv4 listen socket on port 1883
现在这里是 angular 5 ionic 3 应用代码
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import {Paho} from 'ng2-mqtt/mqttws31';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
client;
constructor(public navCtrl: NavController) {
// Anikets LG Phone Client ID: 123456 aniketPhone
// Pixel Client ID qwerty12345 pixelPhone
this.client = new Paho.MQTT.Client('192.168.225.58', 1883,
'aniketPhone');
this.onMessage();
this.onConnectionLost();
this.client.connect({onSuccess: this.onConnected.bind(this)});
}
onConnected() {
console.log("Connected");
this.client.subscribe("pixelPhone");
this.sendMessage('HelloWorld');
}
sendMessage(message: string) {
let packet = new Paho.MQTT.Message(message);
packet.destinationName = "pixelPhone";
this.client.send(packet);
}
onMessage() {
this.client.onMessageArrived = (message: Paho.MQTT.Message) => {
console.log('Message arrived : ' + message.payloadString);
alert(message.payloadString)
};
}
onConnectionLost() {
this.client.onConnectionLost = (responseObject: Object) => {
console.log('Connection lost : ' + JSON.stringify(responseObject));
};
}
}
【问题讨论】: