当前位置: 首页 > 知识库问答 >
问题:

在端口443上使用erlang mqtt websocket客户端连接ibm Bluemix Watson IoT

陆斌
2023-03-14

Websocket协议上的MQTT

我正在尝试使用端口443(ssl/tls)上的erlang mqtt websockets连接IBM Watson IoT服务。但是,我收到了错误。

IBM dos(https://console.ng.bluemix.net/docs/services/IoT/iotplatform_task.html#devices)表示它支持websocket连接。除了正常的tcp连接(我成功连接了)之外,没有提到websocket的用法(教程/指南)。

我想要一个简单的循序渐进的文档,比如亚马逊物联网(http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)用于将websocket连接作为客户端应用程序

我正在计算我认为可能不合适的URL/URI,即ws(s)://主机:端口/路径。目前,我把它作为wss://fybr123mqtt.mybluemix.net(其中fybr123mqtt是我的应用程序名称)。主机、端口是什么

共有2个答案

陆翰学
2023-03-14

Url:<代码>wss://6DigitOrgID.messaging.internetofthings.ibmcloud.com:8883

使用NodeJS可以很好地工作。我不指定其他endpoint。

[BaseClient:connect] Connecting to IoTF with host : wss://6DigitOrgID.messaging.internetofthings.ibmcloud.com:8883
[DeviceClient:connect] DeviceClient Connected
connected
[DeviceClient:publish] Publishing to topic iot-2/evt/myevt/fmt/json with payload {"radiation":1} with QoS 2

这是基于带有“enforce ws”的示例客户端代码:true

修改了该客户端并使用443进行了测试:

[BaseClient:connect] Connecting to IoTF with host : wss://6DigitOrgID.messaging.internetofthings.ibmcloud.com:443
[DeviceClient:connect] DeviceClient Connected
connected
[DeviceClient:publish] Publishing to topic iot-2/evt/myevt/fmt/json with payload {"radiation":1} with QoS 2

我不知道有没有erlang的样品。

郑宇
2023-03-14

这里清楚地描述了连接过程:
控制台。ng。bluemix。网络/文档/服务/物联网/设备/mqtt。html

您提到的URL不正确:wss://fybr123mqtt.mybluemix.net

第2步:从控制台将您的设备连接到Watson IoT平台。ng。bluemix。net/文档/服务/物联网/物联网平台\u任务。html#设备它显示以下内容:

连接设备时需要以下信息:

URL: org_id.messaging.internetofthings.ibmcloud.com
Where org_id is the ID of your Watson IoT Platform organization.
Port:
    1883
    8883 (encrypted)
    443 (websockets)
Device identifier: d:org_id:device_type:device_id
This combination of parameters uniquely identifies your device.
Username: use-token-auth
This value indicates that you are using token authorization.
Password: Authentication token
This value is the unique token that you defined or that was assigned to your device when you registered it.

完成步骤1:向Watson IoT平台注册设备后,将提供组织id、设备类型、设备id和密码

注意:clienID是设备标识符:d:org\u id:Device\u type:Device\u id

我成功地使用了mqttfx、eclipse paho、mosquitto,还有许多其他免费的mqtt客户机可以使用。

此外,还有一些很好的教程(配方),可以帮助您开始使用Java、Pyhton等中的IBM客户端库。作为示例,您可以查看:“IBM.com/developerworks/cloud/library/cl mqtt-bluemix-iot-node-red-app/”

下面是一个网关设备类型的示例,其中mosquitto“developer.ibm.com/recipes/tutorials/using-mosquitto-as-a-gateway-for-watson-iot/”

不要忘记NodeRed中的客户端节点,它们非常易于使用。

如果你还需要帮助,请告诉我。

谢谢,丹尼尔

 类似资料:
  • 问题内容: 我使用nodejs(net module )在客户端和服务器之间创建了tcp连接。服务器正在侦听已经预定义的端口,而客户端正在连接到该端口。 据我了解,客户端的端口是由节点动态分配的?那是对的吗? 哪种算法节点用于为客户端分配“随机”端口?它是如何工作的,是由节点还是由操作系统决定的? 是否可以定义将要使用哪个客户端的静态端口?是否可以定义供客户端使用的端口范围? 注意:我想我之前在找

  • 在Netty中创建客户端连接时,我有一个问题。 这里,为什么我们没有一个bind方法,将通道绑定到发起客户端连接的端口(在客户端)?我们唯一需要提供的就是给出服务器地址和端口如下: 这是在客户端还是服务器端创建了一个新的通道?此通道绑定在客户端的哪个端口? 我们在执行服务器端引导时进行绑定,如下所示 我很困惑,不明白客户端从哪个端口向服务器发送数据,使用的是什么通道?

  • 我使用python中的套接字设置了一个客户机和一个服务器,客户机向服务器发送数据,服务器执行操作,然后向客户机返回一些数据。最初,客户端和服务器将具有相同的端口号(9999)。我目前的问题是,我必须将服务器端口更改为19999,当我试图运行时,它无法工作。客户端能够发送数据,如果它的端口也更改为19999,但它不工作,如果客户端是9999和服务器是19999,这是我需要的。新的网络系统,所以将感谢

  • 问题内容: 当使用Socket类时,它正在某个端口上建立与服务器的TCP连接,但是ServerSocket能够在服务器上为每个接受请求处理多个客户端连接,并将其委托给线程来处理该请求。但是ServerSocket类如何在同一个端口上接受多个tcp连接。 这是否意味着要由操作系统来决定它允许多少个连接,或者允许的最大积压量是多少,并且可以由OS之上的应用程序控制(我的意思是Java受OS支持的最大积

  • 我想知道以下问题的答案: 1)如果Ignite服务器重新启动,我需要重新启动客户端(web应用程序)。是否有任何方法可以在服务器重新启动时重新连接到服务器。我知道当服务器重新启动时,它分配了一个不同的ID,因此当前现有的连接变得过时。是否有方法克服这个问题,如果是的话,哪一个版本的Ignite支持这个功能。目前我使用1.7版本 3)如果我有一个大对象要缓存,我发现序列化和反序列化在Ignite中需

  • 问题内容: 有没有一种方法可以使用客户端(而不是Node.js)JavaScript直接连接到Redis? 我已经为一些项目成功使用了Node.js + PHP + Redis + Socket.io(用于客户端)。但是,我确实认为这可以进一步简化为类似PHP + Redis + Browser javascript的东西- 取出Node.js服务器,这是我不愿意使用的另一台服务器。对于简单的事情