如何通过 mqtt.js 连接到 ec2 上的 mqtt 代理?
how to connect to an mqtt broker on ec2 via mqtt.js?
我想: 通过节点包从 raspberrypi 推送消息 mqtt.js to/through 一个 ec2 mosquitto 代理并返回到树莓派。
我在我的 ec2 实例上安装了一个 mosquitto 代理。使用这些命令:
ssh -i awskeypair.pem ubuntu@ec2-54-153-18-31.us-west-1.compute.amazonaws.com
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
mosquitto
在 raspberrypi 上,我通过节点安装了 mqtt.js。
安装包:
npm install mqtt --save
index.js
var mqtt = require('mqtt');
// pretty sure this var client line isn't connecting if I use test.mosquitto.org it works just fine
var client = mqtt.connect('mqtt://ec2-54-153-18-31.us-west-1.compute.amazonaws.com');
client.subscribe('presence');
client.publish('presence', 'Hello mqtt');
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString());
});
client.end();
问题:我很确定我的带有 mosquitto 代理的 ec2 实例无法访问
问题:
如何连接到我的 ec2 代理?
关于我经纪人的笔记
ubuntu@ip-172-31-6-23:~$ mosquitto
1425504937: mosquitto version 1.4 (build date 2015-02-18 21:33:29+0000) starting
1425504937: Using default config.
1425504937: Opening ipv4 listen socket on port 1883.
听起来你没有在你的安全组中打开端口 1883。如果安全组不是问题,请仔细检查您的 EC2 实例
上是否没有 IPTables 运行
不确定这是否也与 ec2 相关,但对于物联网,我通过在连接调用中正确设置选项对象来 MQTT.js 工作。
var client = mqtt.connect('mqtts://<yourawsid>.iot.us-east-1.amazonaws.com', {
port: '8883',
cert: fs.readFileSync('<path>/cert.pem'),
key: fs.readFileSync('<path>/privateKey.pem')
}
);
我想: 通过节点包从 raspberrypi 推送消息 mqtt.js to/through 一个 ec2 mosquitto 代理并返回到树莓派。
我在我的 ec2 实例上安装了一个 mosquitto 代理。使用这些命令:
ssh -i awskeypair.pem ubuntu@ec2-54-153-18-31.us-west-1.compute.amazonaws.com
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
mosquitto
在 raspberrypi 上,我通过节点安装了 mqtt.js。
安装包:
npm install mqtt --save
index.js
var mqtt = require('mqtt');
// pretty sure this var client line isn't connecting if I use test.mosquitto.org it works just fine
var client = mqtt.connect('mqtt://ec2-54-153-18-31.us-west-1.compute.amazonaws.com');
client.subscribe('presence');
client.publish('presence', 'Hello mqtt');
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString());
});
client.end();
问题:我很确定我的带有 mosquitto 代理的 ec2 实例无法访问
问题:
如何连接到我的 ec2 代理?
关于我经纪人的笔记
ubuntu@ip-172-31-6-23:~$ mosquitto
1425504937: mosquitto version 1.4 (build date 2015-02-18 21:33:29+0000) starting
1425504937: Using default config.
1425504937: Opening ipv4 listen socket on port 1883.
听起来你没有在你的安全组中打开端口 1883。如果安全组不是问题,请仔细检查您的 EC2 实例
上是否没有 IPTables 运行不确定这是否也与 ec2 相关,但对于物联网,我通过在连接调用中正确设置选项对象来 MQTT.js 工作。
var client = mqtt.connect('mqtts://<yourawsid>.iot.us-east-1.amazonaws.com', {
port: '8883',
cert: fs.readFileSync('<path>/cert.pem'),
key: fs.readFileSync('<path>/privateKey.pem')
}
);