Tag: mqtt

如何通过mqtt.js连接到ec2上的mqtt经纪人?

我想要: 通过节点包mqtt.js将消息从raspberrypi推送到/通过ec2 mosquitto broker并返回到raspberrypi。 我已经在我的ec2实例上安装了一个mosquitto broker。 使用这些命令: 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 […]

使用nodejs redis时出现EMFILE错误

我想testing一下我的redis服务器可以容纳多less连接,所以我在一个循环中调用redis.createClient(),而redis服务器仍然运行良好,我得到了EMFILE错误,我知道我已经使用了我的fds。 但是等一下,我刚刚testing了我的mqtt服务器,我对我的mqtt服务器做了同样的事情,我在一个10000,20000的循环中调用mqtt.createClient()…但是我从来没有得到EMFILE错误。 那么,nodejs mqtt库在底下使用了不同的机制? redis-client.js: var redis = require('redis'); function start() { var client = redis.createClient(); client.on('error', function(err) { console.log('Error ' + err); }); } exports.start = start; Redis的-test.js var redis_client = require('./redis-client'); for(var i = 0 ; i < 10000 ; ++i) { redis_client.start(); console.log('redis client ' + i + ' started'); } MQTT-subclient.js […]

作为MQTT客户端处理的服务器可以处理多less条消息

我有一个物联网应用程序。 哪里用于沟通我正在使用mqtt协议。 我正在使用Emqttd( http://emqtt.io/ )作为mqtt经纪人。 现在,我所有的设备以及我的节点服务器都作为客户端连接到MQTT Broker。 每当设备需要更新它的状态时,它就会发布一个特定的主题,而我的节点服务器正在监听所有的主题。 但是,如果没有,我恐怕是这样。 的消息每秒增加,我的服务器将能够处理所有这些消息,并更新数据库中的状态? 有没有限制没有。 可以由客户端每秒处理的消息? 还是有更好的方法来更新我的设备到数据库的状态。

无法从Android向Node.js发送UTF-8编码的string

我试图做一个简单的消息应用程序。 我通过提供的方法在Android中以UTF-8编码string: String msg = "helloo"; byte[] bytemsg = msg.getBytes("UTF-8"); 我通过MQTT(Paho库)发送到我的服务器,我使用mosca库接收它。 var received = new Buffer(payload).toString('utf8'); 但是,我没有收到我发送的内容。 在上面的例子中,我得到了 另外,当我发送“你好”时,什么都不显示。 我用utf-8字符阅读了javascript的问题,但是我没有使用超出基本平面的字符。 我会很感激任何帮助。

IBM WebSphere / MQTT.js:将MQHRF2转换为MQSTR格式

我在NodeJS中有一个使用MQTT模块(mqtt.js)的客户机与WebSphere MQ主题进行通信,redirect到队列:我需要将结果放在队列中,以便在源和目标之间使用主题因为MQTT协议只与主题进行通信)。 所以我们有: NodeJS(源) – > Websphere的主题MQ(中间) – > Websphere MQ的队列(目标) 问题是WebsphereMQ的队列上收到的消息是MQHRF2格式,但我需要MQSTR。 我没有在mqtt.js中find任何属性来指定格式。 我认为我们可以用IBM Websphere MQ强制它,但是如何? 我可以创build一个频道或任何其他用途,这就是说转换接收格式 ? 在此先感谢您的帮助 ! configuration: MQTT.js v3 WebSphere MQ v7.5 限制: WebSphere MQ必须是v7.5(所以我不能升级到v8来使用mqlight) 最好留在模块MQTT.js中 当我通过WebSphere MQ浏览器直接发布主题时,它可以正常工作。 但是,从NodeJS应用程序发布时,它会失败。 我试了两个方法列表中的评论,但我发现了一个奇怪的事情:结果是不同的,如果我使用MQExplorer(我总是使用)或MQ控制台: 在MQ Explorer上: 在MQ控制台上,使用以下命令:amqsbcg QUEUE_MQTT_VERIF MQTTVerification: 正如你所看到的,在控制台中,格式字段是空的,而在MQExplorer上则是MQHRF2。 消息也是不同的。 所以MQConsole的结果是正确的,而MQExplorer在更改后仍然显示错误的结果。 请注意,只有在两者都做了更改后,结果才是正确的: 订阅:ALTER SUB(APPLE.PRICES)PSPROP(NONE) 队列:ALTER QLOCAL(价格)PROPCTL(NONE) 也许问题的根源只是MQExplorer软件上的显示? 编辑: MQExplorer和MQConsole之间的区别在于MQ Explorer中的参数:窗口 – >首选项 – > […]

节点简单对象工厂模块

所以我有一个使用MQTT的节点应用程序。 我想把所有的MQTT客户端创build逻辑封装在一个地方,以减轻重构。 我写了一个如下所示的模板: var mqtt = require('mqtt') , host = 'localhost' , port = '1883'; var settings = { keepalive: 30000, protocolId: 'MQIsdp', protocolVersion: 3, username:'testuser', password:'testpass' } exports.createClient = function(clientId){ if(clientId){ settings.clientId = clientId; }//otherwise default return mqtt.createClient(port, host, settings); } 我很新的节点,并会说我有中级的JavaScript编程技巧。 无论什么原因,只要我用多个客户端创build运行这个代码,所有的地狱都会崩溃。 他们打得不好,踢对方连线。 但是,如果我直接在每个文件中input完全相同的代码,则没有问题。 团队中更有经验的节点开发人员之一说,这可能是节点caching用户模块的方式? 当多次调用创build客户端时,代码实际上不会返回新的客户端实例。 我怎样才能重写这个简单的工厂正常工作?

MQTT在React Native上?

当我将MQTT添加到反应原生项目中时,我很难找出正确的方法。 该项目需要在iOS和Android上运行,所以理想情况下,可以在JavaScript端处理MQTT。 我意识到networking的巢穴是不同的,从移动到经典的节点,所以我开始分叉MQTT.js的路线,并在路障后碰到路障。 我应该继续分叉MQTT.js的路线吗? 我是否应该使用polyfills或其他方法来复制移动环境中的节点环境? 我应该分解并获得一个客观的C库和一个Java库并包装它们吗?

使用aws iot从aws lambda发布mqtt消息到主题

我需要使用aws iot通过mqtt协议发布aws lambda数据。 我用node.js代码创build了一个lambda函数。 喜欢这个 exports.handler = (event, context, callback) => { var awsIot = require('aws-iot-device-sdk'); var device = awsIot.device({ keyPath: 'samplepath/test.pem.key', certPath: 'samplepath/test.crt', caPath: 'samplepath', clientId: 'sampleId', region: 'us-east-1' }); device .on('connect', function () { console.log('connected'); device.publish('test_topic', JSON.stringify({ "test_name": "hello", "test_value": 1001 })); console.log('published successfully'); callback(null, 'item added'); }); } 我在订阅者上收到了mqtt消息。 但lambda产生这样的错误消息 Task timed […]

MQTT代理的最大消息长度是多less?

我正在使用node.js mosca MQTT经纪人为一些物联网(IOT)应用程序。 https://github.com/mcollina/mosca 一个主题可以为mosca经纪人收到的最大消息长度是多less? 限制消息长度的因素是什么? 如果我想增加消息长度,是否有可以修改的configuration参数或者哪部分代码可以更改?

通过浏览器的HTTPS通过networking套接字连接mqtt客户端

我想使用带HTTPS的Web套接字在Web浏览器上运行mqtt客户端。 用HTTP,我没有问题。 这是使用HTTP时Web浏览器上的代码。 <script> var client = mqtt.connect( 'wss://127.0.0.1:3000', {username:'test_user', password:'test_password'} ); client.subscribe("mqtt/test"); client.on("message", function(topic, payload) { alert([topic, payload].join(": ")); client.end(); }); client.publish("mqtt/test", "testing hello world!"); </script> 这就是我如何启动独立的mosca broker在websockets上使用HTTPS。 mosca –very-verbose –key ./tls-key.pem –cert ./tls-cert.pem –credentials ./credentials.json –https-port 3000 –https-bundle –https-static ./ | pino 我应该如何更改浏览器上的mqtt客户端代码以通过HTTPS连接到websockets上的Mosca代理?