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

标签 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,我还能从哪里获得更多信息?

最佳答案

对于 mclient,当您通过安全端口 (8883) 请求连接时,您还需要将 useSSL 标志传递给“true”。默认情况下,连接安全设置在带有 token 的 TLS 上,因此您需要使用 SSL。如果您不想要那样,那么我想您可以将 TLS 上的设置设置为可选,将端口更改为 1883,然后您就可以按原样使用代码。 events type do 您可以在 IoT Dashboard 的“TLS Optional”上设置连接设置。您可以通过以下方式做到这一点:安全 > 连接安全 > 在 TLS 上设置的安全级别可选

关于ios - 无法从 Xamarin 应用程序连接到 IBM IOT 平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49683332/

相关文章:

hadoop - Ambari:如何部署/etc/hosts?

java - 对象存储 - 无法访问区域 "London"中的容器

ios - 如何在 Swift 中获取与 dropbox api 的共享链接?

ios - 固定位置在 contentEditable ios webkit safari 上损坏

c# - WKWebView 使用 LoadFileUrl 加载本地内容

c# - 在 Xamarin.Forms 中,在我将 ScrollView 添加到页面后,我所有的点击事件都停止工作。 ScrollView 是否拦截点击?

ios - UIButton 的 setTitleShadowOffset 已弃用

ios - Cocos2d 纵向模式下的偏移问题

android - 作业调度服务

mysql - Bluemix ClearDB - 表在不活动后不存在