在JBoss的AeroGear JavaScript的通知是针对不同的信息服务和协议交互提供了统一的/类似的API适配器的集合.
问题
我正在通过WS适配器为JBoss AeroGear JS MQTT编写一些QUnit测试,这依赖于Eclipse Paho MQTT JavaScript客户端.测试适用于Firefox/Chrome但在PhantomJS 1.9.7上出现AMQJS0008I Socket closed
连接错误.
最初,我的测试是针对Apache Active MQ代理版本5.9.0运行的,它支持开箱即用的WebTockets上的MQTT.我还修改了它们以在WebSockets沙箱环境中使用Eclipse Paho MQTT,ws://iot.eclipse.org/ws
但问题仍然存在.
如何重现?
克隆我的GitHub存储库https://github.com/tolis-e/aerogear-js-integration
.签出stackoverflow
分支,执行npm install
然后grunt integration-iot --debug
.要验证测试是否适用于Firefox/Chrome,请tests/notifier/mqttws.html
在浏览器中打开.QUnit测试位于mqttws.js文件中.正如您在下面的日志中看到的,我收到了一个AMQJS0008I Socket closed
错误.
有关错误原因的任何想法?我的感觉是这个问题与PhantomJS 1.9.7不支持Web套接字RFC 6455这一事实有关.看起来PhantomJS 2.x支持RFC 6455
日志
[D] ["phantomjs","qunit.begin"]
[D] ["phantomjs","onLoadFinished","success"]
[D] ["phantomjs","qunit.moduleStart","Connect / Disconnect"]
[D] ["phantomjs","qunit.testStart","Connect to and Disconnect from MQTT Server"]
[D] ["phantomjs","console","Unexpected response code: 404"]
Unexpected response code: 404 …
Run Code Online (Sandbox Code Playgroud) 我想将消息从android发布service
到本地服务器.以下是基于此处片段的最简单形式的代码部分.
MemoryPersistence memPer;
MqttAndroidClient client;
@Override
public IBinder onBind(Intent intent) {
memPer = new MemoryPersistence();
client = new MqttAndroidClient(this, "tcp://192.168.1.42:1883", "clientid", memPer);
try {
client.connect(null, new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken mqttToken) {
Log.i("MQTT", "Client connected");
Log.i("MQTT", "Topics=" + mqttToken.getTopics());
MqttMessage message = new MqttMessage("Hello, I am Android Mqtt Client.".getBytes());
message.setQos(2);
message.setRetained(false);
try {
client.publish("messages", message);
Log.i("MQTT", "Message published");
client.disconnect();
Log.i("MQTT", "client disconnected");
} catch (MqttPersistenceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} …
Run Code Online (Sandbox Code Playgroud) 可以通过Coap/MQTT等物联网协议完成视频流(50 Kbps等低比特率),与HTTP/RTP或TCP/UDP流相比,性能要好得多吗?或者底层视频流架构对使用CoAP/MQTT的用例没有帮助.我期待一些好的资源或例子来支持或不支持我的问题.我问了这个问题,因为我找不到有关物联网协议视频流的好资源.请帮忙.
在将MQTT添加到我拥有的反应原生项目时,我很难找到正确的方法.该项目需要在iOS和Android上运行,因此理想情况下可以在javascript端处理MQTT.我意识到网络巢穴从移动节点到经典节点是不同的,所以我开始沿着分叉路线的方式阻止MQTT.js并且遇到障碍.
我应该继续沿着分叉MQTT.js的路线走吗?我是否应该使用polyfill或其他方法在移动环境中复制节点环境?我应该分解并获得一个客观的C库和Java库并将它们包装起来吗?
有时候我AMQJS0008I Socket closed
经常会遇到错误onConnectionLost
.我正在使用最新的Activemq版本.
是否因为收到一些错误的格式化消息而发生这种情况,因为有时它会很好地传递所有消息,有时它会显示错误
我正在做一个基于物联网的项目.所以我需要连接cloudmqtt
和nodejs
服务器.
app.js
// Create a MQTT Client
var mqtt = require('mqtt');
// Create a client connection to CloudMQTT for live data
var client = mqtt.connect('xxxxxxxxxxx', {
username: 'xxxxx',
password: 'xxxxxxx'
});
client.on('connect', function() { // When connected
console.log("Connected to CloudMQTT");
// Subscribe to the temperature
client.subscribe('Motion', function() {
// When a message arrives, do something with it
client.on('message', function(topic, message, packet) {
// ** Need to pass message out **
});
});
});
Run Code Online (Sandbox Code Playgroud)
然后开始我的服务器.但没有任何事情发生(没有错误信息,没有警告).请帮我这个?
我在我的网络应用程序上使用AWS IOT MQTT协议进行实时更新,我net::ERR_CERT_SYMANTEC_LEGACY
在Chrome上收到此证书错误,它只在localhost上运行.
我正在使用Nestjs创建一些微服务。
例如,我有x、y和z服务,全部通过grpc互连,但我希望服务 x在特定实体更改时向 webapp 发送更新,因此我考虑了 server-sent-events [开放任何其他更好的解决方案]。
按照nestjs文档,他们有一个以n间隔运行sse路由的函数,似乎是资源耗尽的。有没有办法在有更新时实际发送事件。
假设我在同一服务中有另一个 api 调用,该调用是通过单击另一个 web 应用程序上的按钮触发的,如何触发事件仅在单击按钮时触发,而不是连续不断地发送事件。另外,如果您知道任何惯用的方法来实现这一点,那么变得hacky将不胜感激,希望它成为最后的手段。
我还考虑过使用MQTT来发送事件。但我有一种感觉,单个服务不可能拥有MQTT 和 gRPC。我对使用 MQTT 持怀疑态度,因为它的延迟以及它将如何影响内部消息传递。如果我可以限制外部客户端,那就太好了(即,使用 gRPC 进行内部连接的 x 服务和用于 web 应用程序的 MQTT 只需要 mqtt 公开一条路由)。(PS ,我是微服务新手,所以请全面介绍您的解决方案:p)
server-sent-events mqtt microservices nestjs nestjs-gateways
只问一个愚蠢的问题,希望有人能回答这个问题.
关于MQTT经纪人,我有点困惑.基本上,令人困惑的是,有很多东西被用于数据存储,传输和处理(如Flume,HDInsight,Spark等).那么,何时以及为什么我需要使用一个MQTT代理?
如果我想在HiveMQ中使用Windows 10 IoT应用程序,我可以从哪里获取详细信息?如何使用它?我如何从这个MQTT经纪人那里获益?我是否可以不使用Azure或HDFS直接从我的IoT应用程序发送数据?那么,MQTT经纪人如何融入其中或帮助我实现某些目标呢?
我是所有这些的新手,并试图找到一些教程,但是,我没有得到任何正确的.请详细解释一下,或者为此提供一些教程?