(1)最重要的是,各種推送壹定要放在隊列系統中處理,不然會嚴重影響api的響應時間。
(2)短信方面
以前我們是用億美軟通的短信服務,但在三大運營商收緊了短信服務後,億美軟通的短信延遲非常厲害,後來我們找到了這家短信服務商 ,這家發送短信到聯通,電信,移動手機很快就到了(直到2014.01.24)。
如果發送到移動的短信還沒有改善,最後的後備方案:發送到聯通,電信的短信使用國內的服務商,發送到移動的短信就只能使用國外的短信服務商(國外發短信到移動手機3毛壹條,好貴啊!!!)
註:現在sharesdk提供了免費的短信驗證碼服務( /sms ),試運營期間為開發者提供每個App每天10000條免費短信驗證。
(3)郵件
在壹開始時使用服務器自身的postfix發送郵件的,但我們發現郵件被很多郵件服務商當成垃圾郵件了,而且沒有重發機制,不能保證郵件的準確到達。
後來查了壹下各大網站,發現知乎和github 都是使用 / 的郵件服務,看了壹下文檔,價格很公道,而且每月有1萬封的免費郵件額度,非常適合創業型的公司。
(4)推送服務
在這方面,我考慮的重點是:在創業初期,能用第三方就盡可能多使用第三方的服務,自身只處理業務邏輯本身,快速的開發產品。
android篇:
android方面,我們使用過3種消息推送機制:
1.極光推送,現在放棄了。我們使用的過程中,發現極光的機制有點古怪,壹般來說,壹個app在極光服務器中是固定壹個id,但在極光中是通過廣播來通知app這個id,而且在文檔中居然說明這個id會不定期變化。
2.openfire服務器。app通過連接openfire服務器來獲取各種消息,但是openfire有個機制,當app連接openfire後空閑就自動斷開,沒法保持連接的的穩定性,而修改這個openfire的機制成本太高了,後來也放棄使用openfire。
3.百度推送。已現在使用壹段時間的情況來說,推送及時快速,挺滿意百度的推送服務。
iphone篇:
apns是iphone推送的不二選擇。但如果自身開發apns的服務,會遇到無效token而需要重發,這樣需要維護壹個隊列並建立重發機制,考慮到項目的時間和研發成本,最後也是使用了百度推送的服務。
當用戶在iphone上卸載了app後,device token會失效,所以應該定期訪問蘋果的feedback服務器,把無效的token去掉。