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

时间:2018-04-06 00:05:13

标签: ios xamarin ibm-cloud mqtt watson-iot

我尝试使用HTTP和MQTT从运行Xamarin应用程序的ios设备连接到IBM IOT平台,但到目前为止还没有运气。

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

我的连接代码如下所示:

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 个答案:

答案 0 :(得分:1)

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

上设置的Secutity级别