代码之家  ›  专栏  ›  技术社区  ›  zcleghern

无法从Xamarin应用程序连接到IBM IOT平台

  •  0
  • zcleghern  · 技术社区  · 6 年前

    我曾尝试使用HTTP和MQTT从运行Xamarin应用程序的ios设备连接到IBM IOT平台,但迄今为止没有成功。

    现在我正在使用 OPENNETCF MQTT 包使用MQTT进行连接,但它似乎停留在“连接”上。在查看物联网平台网站时,我没有看到设备状态有任何变化。

    我的连接代码如下所示:

    public async Task ConnectOpenNETCF() {
    
                if (mclient == null) {
                    mclient = new MQTTClient("orgid.messaging.internetofthings.ibmcloud.com", 8883);
                    string id = "d:orgid:ios:test01";
                    await mclient.ConnectAsync(id, "use-token-auth", "the generated token");
    
                    if (mclient.IsConnected)
                        Console.WriteLine("Client is connected.");
                    else
                        Console.WriteLine("Client is not connected. " + mclient.ConnectionState);
                } else {
                    Console.WriteLine("Status: " + mclient.ConnectionState);
                }
    
    
            }
    

    其中orgid是IOT平台生成的6个字符的组织id,ios是设备类型,test01是设备名称。我做错什么了吗?除了MQTT客户机的ConnectionState之外,我在哪里可以获得更多信息?

    1 回复  |  直到 6 年前
        1
  •  1
  •   idan    6 年前

    对于mclient,当您请求通过安全端口(8883)进行连接时,还需要将useSSL标志传递为“true”。默认情况下,连接安全设置位于带有令牌的TLS上,因此您需要使用SSL。如果您不想这样做,那么我想您可以将TLS上的设置设置为可选,将端口更改为1883,这样您就可以按原样使用代码。事件类型do您可以在物联网仪表板的“TLS可选”上设置连接设置。您可以通过以下方式实现:安全性>连接安全性>TLS上设置的安全级别可选