iOS开发中如何用TLS的方式连亚马逊的MQTT服务器

iOS开发中如何用TLS的方式连亚马逊的MQTT服务器

亚马逊提供的SDK中,嵌入式c、java、c++都是可以用TLS的方式连的,只需要ca、crt、key文件即可连上,唯独iOS不行,不支持。连填证书的地方都没有,网络上讲的也都是其它方式需要在亚马逊的后台填一堆东西,考虑到安全性,还是得用tls的方式,没办法只能寻找第三方SDK。走了n多的弯路,终于搞定,把思路写出来

先是找到了mosquitto,是一个mqtt broker。也就是一个连接工具,它支持mqtt服务端和客户端,支持tls连接,然后找到了用它封装而成的支持tls的客户端代码c的oc的都有。然而运行之后可以连接成功,一旦subscribe或者publish就报错,异常断开,报MOSQ_ERR_NOMEM。半天没头绪,后来想想是不是它用的mosquitto太老了,就下了最新的拿来对比了一下,发现代码差别挺大的,就替换了一下,然后业务层的代码:mosq = mosquitto_new(cstrClientId, cleanSession, (__bridge void *)(self)); 这句注意最后一个参数。这样就可以了,用mac版的MQTTX给手机发消息,Payload的类型选Plaintext,就可以发送成功了,代码过几天上传,先写到这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值