Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过mqtt.js连接到ec2上的mqtt代理?_Javascript_Node.js_Amazon Ec2_Raspberry Pi_Mqtt - Fatal编程技术网

Javascript 如何通过mqtt.js连接到ec2上的mqtt代理?

Javascript 如何通过mqtt.js连接到ec2上的mqtt代理?,javascript,node.js,amazon-ec2,raspberry-pi,mqtt,Javascript,Node.js,Amazon Ec2,Raspberry Pi,Mqtt,我想:通过节点包mqtt.js将来自raspberrypi的消息推送到/通过ec2 mosquitto代理,然后返回raspberrypi 我已经在我的ec2实例上安装了一个MOSQUITO代理。使用以下命令: 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-g

我想:通过节点包mqtt.js将来自raspberrypi的消息推送到/通过ec2 mosquitto代理,然后返回raspberrypi

我已经在我的ec2实例上安装了一个MOSQUITO代理。使用以下命令:

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
在我通过node安装的raspberrypi上

已安装的软件包:

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

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

不确定这是否也与EC2有关,但对于IoT,我通过在connect调用中正确设置options对象使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')
    }
);
var client=mqtt.connect('mqtts://.iot.us-east-1.amazonaws.com', {
端口:“8883”,
证书:fs.readFileSync('/cert.pem'),
key:fs.readFileSync('/privateKey.pem')
}
);

不确定这是否也与ec2有关,但对于IoT,我通过在connect调用中正确设置options对象,使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')
    }
);
var client=mqtt.connect('mqtts://.iot.us-east-1.amazonaws.com', {
端口:“8883”,
证书:fs.readFileSync('/cert.pem'),
key:fs.readFileSync('/privateKey.pem')
}
);