百度云推送-服务端 C# SDK
思路:
1、公司有项目需要做android和ios手机端推送消息的功能;
2、没有接触过这方面的知识,一头雾水,开始在网上一顿搜,网上倒是有不少解决方案,首先搜的是android的解决方案,因为ios我们自己搭的有服务了(Java),见其中一篇文章 《[移动] Android推送方案分析(MQTT/XMPP/GCM)》,使用MQTT倒是不错的选择,但是服务端是PHP的,我只会C#...由于时间比较急,只好作罢,看来以后得多学点语言了;
3、然后就把精力集中到C#的服务端,倒是找到一个开源的项目PushSharp,项目也下载下来了,就开始学习怎么用,网上关于这个项目的资料很少,没办法只能硬着头皮看他们的官方文档(英文的,真心D疼啊),还有少的可怜的相关资料,后来了解到这个项目推送Android的是采用google的GCM技术,这个需要经过google的服务器才能推送,在天朝你懂得,不过这个项目也有ios、kindle等一些其他终端的推送,感觉挺不错的,以后有时间得研究一下;
4、实在没办法就问同事之前的项目是怎样推送的,同事说之前的项目都是使用第三方提供的服务。其实我不太愿意使用第三方的,很多东西都有限制,不过现在也没辙了,只怨技术不精了。在网上找了几个推荐的推送服务:百度推送、个推、极光推送,比较来比较去,最终还是选择了百度推送,首先感觉百度在网上提供的文档内容还是相对丰富的,最重要的是有c#服务端SDK,在这里特别感谢 郭振-子易 提供的代码https://github.com/xiariqingquan/BaiduPushAspxServer,我就是在这个上面修改完成项目所需;
5、废话不多说,进入正题。
实现代码:
1、因为项目需要,在郭振-子易提供的代码基础上,改版成WebService服务的形式,对外提供接口;
2、除了推送消息的原有功能外,又添加了设置标签、删除标签两个功能;
3、使用log4net进行错误日志的记录;
4、目前已完成android的测试,可以正常推送消息,ios因在百度推送上传证书验证失败,没有测试,代码放在github上 https://github.com/hdkn235/BaiduPush,就不在这里展示了,有盗用版权嫌疑(版权归郭振-子易 所有)。
注意事项:
1、要使用本项目,首先需要注册百度的开发者服务(需要手机验证,而且手机只能验证一次,我想申请个公司用的都不行,擦),然后创建一个应用,获得API key 和Secret key后,修改web.config对应的值就可以使用了。
2、测试时手机端使用的是百度云推送生成的一个Demo,这个可以在推送设置中添加应用名即可获得测试的示例。
总结:
经过这几天的折腾,感觉百度的东西不是很难用,免费的做成这样已经很不错了,有点遗憾的是ios的证书认证太不靠谱,我同事按照百度的教程一步步的制作证书,死活是验证不过,我同事之前也说过用百度的推送从来没成功过。。。,网上这方面的资料也很少,不知道是不是很少人用。以后有时间自己搭建一个服务心里才踏实点。