【问题标题】:how to connect to an mqtt broker on ec2 via mqtt.js?如何通过 mqtt.js 连接到 ec2 上的 mqtt 代理?
【发布时间】:2016-01-29 08:34:49
【问题描述】:

我想要: 通过节点包 mqtt.js 将消息从 raspberrypi 推送到/通过 ec2 mosquitto 代理并返回到 raspberrypi。

我在我的 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

在树莓派上,我通过节点安装了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.

【问题讨论】:

    标签: javascript node.js amazon-ec2 raspberry-pi mqtt


    【解决方案1】:

    听起来您没有在安全组中打开端口 1883。如果安全组不是问题,请仔细检查您的 EC2 实例上没有运行 IPTables

    【讨论】:

      【解决方案2】:

      不确定这是否也与 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')
          }
      );
      

      【讨论】:

        猜你喜欢
        • 2020-04-03
        • 1970-01-01
        • 2019-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-21
        • 1970-01-01
        相关资源
        最近更新 更多