标签:
最近自己接的IOS项目快完结了,这个项目中最大的收获就是聊天功能的实现,说实话第一次用百度云推送的服务,
相当难用,文档不全,效果不稳定,不过最后还是搞好了。好了下面讲讲技术细节
一、概述
我们知道现在的应用都需要推送的功能,推送分两种:
1.广播一条消息,所有机器就会自动产生提示。
2.或者你想发给某个用户,只有他会收到消息,这就是单播。
我们可以利用单播进行点对点通讯、实现即时聊天。
百度给每个设备自动分配一个id,发消息的时候指定对方的id就可以发过去
二、使用接口
百度自身的ios的sdk只提供了自动分配id还有生成接收处理推送消息还有追踪事件的功能。完全无法满足我们聊天的功能,于是我只能使用他们的restful http接口重新封装一遍,做的累死了( ⊙ o ⊙ )。但是使用百度的接口很有难度,很多细节文档上都没有,全靠自己摸索。
这边有几个自己遇到的问题
1.秘钥的问题:每个应用都分配app id 和一个 key 秘钥,秘钥是用来在连接http接口的时候验证身份的,其中涉及到加密算法算出一个签名作为参数传给服务器,将网址和请求参数拼接做一次url编码再进行md5就行了。我自己做的时候就死在url编码好多次,一直以为诸如‘\‘斜杠这种网址本来就能显示的符号不用编码的,结果还真需要进行编码。
2.消息中空格的处理:消息中的空格在发送过程中服务器是无法识别的,即使在引号中也会出错,所以在发消息和收消息的时候都要对空格进行替换,替换成网页中的 ;或+等等随意。这种符号我终于明白有什么用了
标签:
原文地址:http://www.cnblogs.com/leoXoel/p/4396027.html