思路:
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的證書認證太不靠譜,我同事按照百度的教程一步步的制作證書,死活是驗證不過,我同事之前也說過用百度的推送從來沒成功過。。。,網上這方面的資料也很少,不知道是不是很少人用。以后有時間自己搭建一個服務心里才踏實點。