GO短信加強(qiáng)版是在原GO短信版本上進(jìn)行全面升級的高級版本,是一款完全免費(fèi)、界面酷炫、支持氣泡式/列表會(huì)話界面、支持來信即顯彈窗、擁有信息備份/恢復(fù)功能、支持安全鎖加密/黑名單,支持文件夾管理、擁有豐富個(gè)性化設(shè)置的android短信應(yīng)用。 ※ 注意: - 測試版用戶請*卸載*測試版,再安裝這個(gè)正式版。- GO短信加強(qiáng)版可以和GO短信同時(shí)存在,只需在老版本的“提醒設(shè)置“里把“啟用通知”和“啟動(dòng)即顯短信窗口”關(guān)掉;建議同時(shí)保存兩者一段時(shí)間。- 如果你需要導(dǎo)入GO短信里的設(shè)置信息到加強(qiáng)版,只需在“設(shè)置“-”GO 短信服務(wù)“-”設(shè)置信息備份與恢復(fù)“中備份(如果你的GO短信沒有這些服務(wù),請先更新至GO短信最新版本),然后在GO短信加強(qiáng)版中導(dǎo)入即可。
成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元盤龍做網(wǎng)站,已為上家服務(wù),為盤龍各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
- 支持Emoji表情- 支持文件夾管理,里面有收件箱、發(fā)件箱、草稿箱和定時(shí)信箱,還可以新建加密文件夾,把重要信息復(fù)制到文件夾- 手勢操作支持, 您可以使用左右滑動(dòng)的手勢操作切換“信息”界面和“文件夾”界面- 支持DIY主題,可在選擇DIY主題后在“設(shè)置—收件箱個(gè)性化設(shè)置—更換壁紙”進(jìn)行壁紙?jiān)O(shè)置- 支持多語言獨(dú)立安裝包(設(shè)置—應(yīng)用程序設(shè)置—語言選擇)- 聊天式會(huì)話界面或Android原生風(fēng)格界面- 支持使用與下載各式主題(設(shè)置—界面效果設(shè)置—主題選擇)- 支持信息即顯彈窗顯示、快捷回復(fù)- 已支持獨(dú)立于系統(tǒng)短信之外使用- 自帶1x1圖標(biāo)widget和4x2中號widget- 支持個(gè)性化設(shè)置界面- 支持針對不同聯(lián)系人自定義界面設(shè)置- 支持備份/恢復(fù)全部或單個(gè)聯(lián)系人信息,可以是XML備份格式,還能通過email發(fā)送至郵箱保存- 支持設(shè)置備份與恢復(fù)- 支持安全鎖、黑名單功能- 支持手勢滑動(dòng)切換頁面(設(shè)置—界面效果設(shè)置—頁面切換設(shè)置—切換特效)- 針對CDMA網(wǎng)絡(luò)自動(dòng)對長信息進(jìn)行分割- 支持聯(lián)系人個(gè)性化設(shè)置(個(gè)性化通知、鈴聲、簽名設(shè)置)- 支持對聯(lián)系人、信息/會(huì)話內(nèi)容刪除和設(shè)置進(jìn)行備份操作- 支持時(shí)間偏差調(diào)整功能- 支持按短信時(shí)間排序或按收發(fā)順序排序- 支持快速回復(fù)- 支持夜間模式- 支持群發(fā)短信- 支持重復(fù)提醒功能- 支持隱私模式(隱藏通知欄和即顯彈窗提示)- 支持聯(lián)系人按名字和字母搜索功能、按谷歌和GO短信聯(lián)系人分組功能- 支持facebook頭像顯示- 短信息按聯(lián)系人、按內(nèi)容搜索功能- 聯(lián)系人排序、選擇、分組、查找功能- 豐富的彩信閱讀模式,強(qiáng)大的彩信編輯功能- 免費(fèi)在線節(jié)日短信庫
重點(diǎn)提示:
這樣我們就啟動(dòng)了一個(gè) nsqd 的實(shí)例
編寫一個(gè)消息生產(chǎn)者
nsq_single_product.go
編寫一個(gè)消息消費(fèi)者
nsq_single_consumer.go
添加第一個(gè)實(shí)例
添加第二個(gè)實(shí)例
消息生產(chǎn)者
nsq_cluster_product.go
消息消費(fèi)者
nsq_cluster_consumer.go
上一節(jié)中,我們?yōu)槊總€(gè)連接都創(chuàng)建了一個(gè)goroutine來讀取其中的消息,現(xiàn)在我們將這個(gè)讀取消息的方法實(shí)現(xiàn)一下。
我們在application目錄下新建controllers目錄,并在其中創(chuàng)建一個(gè)MessageController.go文件。
首先我們新建一個(gè)MessageController的結(jié)構(gòu)體,內(nèi)容如下
這個(gè)結(jié)構(gòu)體包括兩個(gè)內(nèi)容,一個(gè)是我們將連接放在數(shù)組之后,返回的索引,另一個(gè)是連接本身.
這個(gè)是具體的方法。
我們首先設(shè)置了一下讀消息的大小、超時(shí)時(shí)間以及超時(shí)后需要的操作。
超時(shí)時(shí)間如果設(shè)置為0,那么就是永不超時(shí)。之前在這里直接寫0,被告知需要傳一個(gè)time.Time類型的數(shù)據(jù)。最終谷歌后才得到了這個(gè)值time.Time{}為"0001-01-01 00:00:00 +0000 UTC"。
我們將用戶手法消息的內(nèi)容定義為一個(gè)結(jié)構(gòu)體,然后將用戶的訂閱信息的json通過json.unmarshal轉(zhuǎn)換成這個(gè)結(jié)構(gòu)體。
之后的switch操作與我們在Swoole中的操作基本雷同,在查詢到login之后,調(diào)用service中 的login方法來進(jìn)行注冊。
下一節(jié)中我們再介紹具體的注冊邏輯。
目前websocket技術(shù)已經(jīng)很成熟,選型Go語言,當(dāng)然是為了節(jié)省成本以及它強(qiáng)大的高并發(fā)性能。我使用的是第三方開源的websocket庫即gorilla/websocket。
由于我們線上推送的量不小,推送后端需要部署多節(jié)點(diǎn)保持高可用,所以需要自己做集群,具體架構(gòu)方案如圖:
Auth Service:鑒權(quán)服務(wù),根據(jù)Token驗(yàn)證用戶權(quán)限。
Collect Service:消息采集服務(wù),負(fù)責(zé)收集業(yè)務(wù)系統(tǒng)消息,存入MongoDB后,發(fā)送給消息分發(fā)服務(wù)。
Dispatch Service:消息分發(fā)服務(wù),根據(jù)路由規(guī)則分發(fā)至對應(yīng)消息推送服務(wù)節(jié)點(diǎn)上。
Push Service:消息推送服務(wù),通過websocket將消息推送給用戶。
集群推送的關(guān)鍵點(diǎn)在于,web端與服務(wù)端建立長連接之后,具體跟哪個(gè)推送節(jié)點(diǎn)保持長連接的,如果我們能夠找到對應(yīng)的連接節(jié)點(diǎn),那么我們就可以將消息推送出去。下面講解一下集群的大致流程:
1. web端用戶登錄之后,帶上token與后端推送服務(wù)(Push Service)保持長連接。
2. 推送服務(wù)收到連接請求之后,攜帶token去鑒權(quán)服務(wù)(Auth Service)驗(yàn)證此token權(quán)限,并返回用戶ID。
3. 把返回的用戶ID與長連接存入本地緩存,保持用戶ID與長連接綁定關(guān)系。
4. 再將用戶ID與本推送節(jié)點(diǎn)IP存入redis,建立用戶(即長連接)與節(jié)點(diǎn)綁定關(guān)系,并設(shè)置失效時(shí)間。
5. 采集服務(wù)(Collect Service)收集業(yè)務(wù)消息,首先存入mongodb,然后將消息透傳給分發(fā)服務(wù)(Dispatch Service)。
6. 分發(fā)服務(wù)收到消息之后,根據(jù)消息體中的用戶ID,從redis中獲取對應(yīng)的推送服務(wù)節(jié)點(diǎn)IP,然后轉(zhuǎn)發(fā)給對應(yīng)的推送節(jié)點(diǎn)。
7. 推送服務(wù)節(jié)點(diǎn)收到消息之后,根據(jù)用戶ID,從本地緩存中取出對應(yīng)的長連接,將消息推送給客戶端。
其他注意事項(xiàng):