Jack Jiang

          我的最新工程MobileIMSDK:http://git.oschina.net/jackjiang/MobileIMSDK
          posts - 499, comments - 13, trackbacks - 0, articles - 1

          1、引言

          在即時(shí)通訊網(wǎng)經(jīng)常能看到各種高大上的高并發(fā)、分布式、高性能架構(gòu)設(shè)計(jì)方面的文章,平時(shí)大家參加的眾多開發(fā)者大會,主題也都是各種高大上的話題——什么5G啦、AI人工智能啦、什么阿里雙11分分鐘多少萬QPS高并發(fā)等等。

          但實(shí)際上,對于普通的開發(fā)者(包括IM開發(fā)人員)來說,多數(shù)公司、多數(shù)團(tuán)隊(duì)也都是干著默默無聞、平淡無奇的產(chǎn)品開發(fā),并沒有那么多高并發(fā)、高大上的事情可以做。

          就拿一個(gè)IM系統(tǒng)來說,無論你的架構(gòu)設(shè)計(jì)考慮了多少分布式、高吞吐、高可用,所有這些事情只要落地,那編碼的第一件事情就是要實(shí)現(xiàn)幾乎所有信息系統(tǒng)都要面對的任務(wù)——如何設(shè)計(jì)賬號登錄功能?

          本文將分享幾種典型的移動端賬號登陸方式的技術(shù)原理,以及設(shè)計(jì)思路,理解后,完全可以快速實(shí)施于你的各種應(yīng)用系統(tǒng)(并不限于IM系統(tǒng))中。本文閱讀對像主要為剛?cè)腴T的開發(fā)人員,請程序老司機(jī)們嘴下留情哦。

           

          通過本篇文章, 你可以學(xué)到:

          1)主流賬號登陋技術(shù)方案細(xì)節(jié);

          2)相應(yīng)的表設(shè)計(jì);

          3)相應(yīng)的流程設(shè)計(jì)。

          通過本篇文章, 你無法學(xué)到:

          與其他原理性的文章一樣,本篇不涉及具體代碼實(shí)現(xiàn)細(xì)節(jié)(對于程序員來說,只要思路搞通,代碼咋寫都不會太爛,大家應(yīng)該都有體會)。

          學(xué)習(xí)交流:

          - 即時(shí)通訊/推送技術(shù)開發(fā)交流5群:215477170[推薦]

          - 移動端IM開發(fā)入門文章:《新手入門一篇就夠:從零開發(fā)移動端IM

          (本文同步發(fā)布于:http://www.52im.net/thread-2863-1-1.html

          2、IM開發(fā)干貨系列文章

          本文是系列文章中的第20篇,總目錄如下:

          IM消息送達(dá)保證機(jī)制實(shí)現(xiàn)(一):保證在線實(shí)時(shí)消息的可靠投遞

          IM消息送達(dá)保證機(jī)制實(shí)現(xiàn)(二):保證離線消息的可靠投遞

          如何保證IM實(shí)時(shí)消息的“時(shí)序性”與“一致性”?

          IM單聊和群聊中的在線狀態(tài)同步應(yīng)該用“推”還是“拉”?

          IM群聊消息如此復(fù)雜,如何保證不丟不重?

          一種Android端IM智能心跳算法的設(shè)計(jì)與實(shí)現(xiàn)探討(含樣例代碼)

          移動端IM登錄時(shí)拉取數(shù)據(jù)如何作到省流量?

          通俗易懂:基于集群的移動端IM接入層負(fù)載均衡方案分享

          淺談移動端IM的多點(diǎn)登陸和消息漫游原理

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(一):正確理解前置HTTP SSO單點(diǎn)登陸接口的原理

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(二):如何設(shè)計(jì)大量圖片文件的服務(wù)端存儲架構(gòu)?

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(三):快速理解服務(wù)端數(shù)據(jù)庫讀寫分離原理及實(shí)踐建議

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(四):正確理解HTTP短連接中的Cookie、Session和Token

          IM群聊消息的已讀回執(zhí)功能該怎么實(shí)現(xiàn)?

          IM群聊消息究竟是存1份(即擴(kuò)散讀)還是存多份(即擴(kuò)散寫)?

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(五):通俗易懂,正確理解并用好MQ消息隊(duì)列

          一個(gè)低成本確保IM消息時(shí)序的方法探討

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(六):數(shù)據(jù)庫用NoSQL還是SQL?讀這篇就夠了!

          IM里“附近的人”功能實(shí)現(xiàn)原理是什么?如何高效率地實(shí)現(xiàn)它?

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(七):主流移動端賬號登錄方式的原理及設(shè)計(jì)思路》(本文)

          3、最經(jīng)典的用戶名密碼注冊登陸方式

          一個(gè)典型的用戶名密碼注冊登陸功能類似于下面這樣:

           

          這種賬號登陸方式很經(jīng)典也很常用,先注冊、再進(jìn)行登錄,尤其在老一點(diǎn)的CMS系統(tǒng)、網(wǎng)站系統(tǒng)、聊天應(yīng)用中都能找到這個(gè)影子。

          它的技術(shù)原理流程圖如下:

           
           

          如上圖所示,詳細(xì)的流程說明如下:

          • 1)前端將用戶名、密碼發(fā)送到服務(wù)器,服務(wù)器進(jìn)行常規(guī)的判斷,判斷用戶名、密碼長度是否滿足,用戶名是否重復(fù)等條件,條件不通過直接返回對應(yīng)錯(cuò)誤碼給到前端,這里密碼字段,為了防止傳輸過程中被截胡,建議加密再上傳,我們的傳輸密碼默認(rèn)都是會進(jìn)行一個(gè)md5加密,然后記錄到數(shù)據(jù)庫再進(jìn)行一層加密,就算是脫庫也沒事,密碼不要明文存儲。
          • 2)校驗(yàn)通過后,就將用戶名密碼寫入數(shù)據(jù)庫,并進(jìn)行后面積分發(fā)放等操作,這里不展開。
          • 3)現(xiàn)在進(jìn)行登錄,前端將用戶名,密碼發(fā)送給到服務(wù)端,服務(wù)端首先會校驗(yàn)登錄次數(shù)是否超過設(shè)置的閾值,如果超過只能繼續(xù)等待被關(guān)小黑屋。
          • 4)如果未超過繼續(xù)登錄邏輯,判斷用戶名、密碼是否正確,不正確密碼則進(jìn)行閾值的判斷,如果超過則關(guān)小黑屋,記住小黑屋必須設(shè)置過期時(shí)間,要不然就會永久關(guān)上了,這個(gè)可以用redis的過期來做。
          • 5)登錄成功后進(jìn)行后續(xù)的一切后置邏輯,比如加積分。。。等操作。

          這種經(jīng)典的注冊登陸方式,具體怎么設(shè)計(jì)就不在這里贅述了,誰都懂。

          4、現(xiàn)今最主流的手機(jī)號注冊登陸方式

          4.1 基本原理

          典型的手機(jī)號注冊登陸功能類似于下圖:

           

          典型的手機(jī)號注冊技術(shù)原理流程圖如下:

           
           

          如上圖所示,詳細(xì)的流程說明如下:

          • 1)首先輸入手機(jī)號:然后發(fā)送到服務(wù)端,服務(wù)端將手機(jī)號記錄在我們數(shù)據(jù)庫中,然后生成隨機(jī)驗(yàn)證碼,并將手機(jī)號和驗(yàn)證碼綁定到一個(gè)redis里面,然后記錄過期時(shí)間,這個(gè)過期時(shí)間一般是10分鐘左右,這就是我們一般手機(jī)驗(yàn)證碼的有效期;
          • 2)手機(jī)接收到手機(jī)短信后:那么就在界面填寫驗(yàn)證碼發(fā)送服務(wù)端,服務(wù)端收到驗(yàn)證碼后就會在redis里面查詢到這個(gè)手機(jī)號對應(yīng)的驗(yàn)證碼,失敗就返回錯(cuò)誤碼。
          • 3)成功后:就進(jìn)行登錄操作。

          這里看起來沒有明確的注冊登錄操作,其實(shí)在發(fā)送手機(jī)號碼就可以認(rèn)為是一個(gè)常規(guī)的注冊,然后后面的驗(yàn)證碼輸入就是一個(gè)登陸操作。

          但這種區(qū)別于常見的用戶名密碼注冊方式,是沒有密碼的的。

          問: 那我要密碼咋辦?

          答: 在后續(xù)產(chǎn)品里面增加一個(gè)手機(jī)號碼密碼補(bǔ)錄的功能即可,這也是現(xiàn)在很常規(guī)的手法,但是現(xiàn)在移動互聯(lián)網(wǎng)大爆炸時(shí)代,密碼已經(jīng)顯得不是那么重要了,反正我從來記不住密碼,如果手機(jī)號碼能操作的app,絕對不用密碼來操作。

          4.2 具體的數(shù)據(jù)庫設(shè)計(jì)

          表結(jié)構(gòu): 

          說明:

          這里只是單純說明需要用到的數(shù)據(jù),沒有擴(kuò)展具體場景,這個(gè)表結(jié)構(gòu)能夠滿足上面兩個(gè)方案的設(shè)計(jì)。

          5、一種輔助的登陸方式:第3方賬號登陸

          5.1 基本原理

          現(xiàn)在很多應(yīng)用為了降低新用戶的使用門檻,都會對接第3方賬號進(jìn)行登陸(比如:用微信號登陸、QQ號登陸、微博賬號登陸等)。

          這里我以QQ的開放平臺登錄邏輯為例進(jìn)行講解。

          某團(tuán)外賣的QQ賬號登陸功能如下圖:

           

          我們先來一波時(shí)序圖:

           
           

          時(shí)序流程詳細(xì)說明:

          • 1)客戶端自己調(diào)起登錄的界面,進(jìn)行輸入用戶名、密碼,這里的是第三方的用戶名,密碼,登錄成功后,會返回access_token openid expire_in,這過程會使用到oauth2.0,不過在sdk里面進(jìn)行內(nèi)置回調(diào)獲取了,后面我們會說明我們自身實(shí)現(xiàn)的oauth2.0;
          • 2)客戶端拿到access_token、openid、login_type(qq、wechat...)請求應(yīng)用服務(wù)器,應(yīng)用服務(wù)器拿到這些數(shù)據(jù)后就會根據(jù)對應(yīng)的login_type去對應(yīng)的用戶中心進(jìn)行access_token和openid進(jìn)行校驗(yàn)。校驗(yàn)不通過則返回對應(yīng)錯(cuò)誤碼;
          • 3)校驗(yàn)通過后就會判斷本地是否有這個(gè)login_type和openid是否存在,不存在則進(jìn)行獲取遠(yuǎn)程的用戶名、頭像等基礎(chǔ)信息來作為本地基礎(chǔ)數(shù)據(jù),并且返回code值;
          • 4)如果已經(jīng)存在,那就是進(jìn)行登錄操作,返回code值;
          • 5)客戶端拿到code值后進(jìn)行token值的換取,這個(gè)完全遵照oauth2.0的協(xié)議來走的,后續(xù)每次請求必須帶上token,token值在服務(wù)端的時(shí)間比較久,因?yàn)槲覀兿胍龅氖悄欠N永不下線的操作,所以每次請求我們都將token過期時(shí)間進(jìn)行累加。

          想要深入了解第3方賬號登陸,可以讀讀這兩篇:《第三方登錄:QQ登錄接入指南》、《第三方賬號登錄功能接入完全流程》。

          5.2 具體的數(shù)據(jù)庫設(shè)計(jì)

          表結(jié)構(gòu):

          對于讀者的建議,我這里做一下數(shù)據(jù)庫的整理。

           

          用戶基礎(chǔ)表(users):

           

          用戶驗(yàn)證關(guān)聯(lián)表(user_auth_rel): 

           

          本地用戶表(user_local_auth):

           

          第三方用戶表(user_third_auth): 

           

          表結(jié)說明:

          • 1)users表只是單純針對我們業(yè)務(wù)側(cè)的登錄,主要是做自身業(yè)務(wù)的oauth2.0業(yè)務(wù);
          • 2)user_local_auth是做自己用戶名、密碼登錄,手機(jī)號碼登錄信息記錄;
          • 3)user_third_auth是我們第三方用戶體系的數(shù)據(jù)記錄;
          • 4)user_auth_rel是用來關(guān)聯(lián)我們users表與user_local_auth、user_third_auth;
          • 5)整個(gè)設(shè)計(jì)理念就是將自建用戶與第三方在存儲上區(qū)分,這在架構(gòu)演進(jìn)上也是合乎情理的,開始用戶體系大多自建,而后才是對外接入。

          6、本文小結(jié)

          總的來講,賬號注冊登錄功能在一般的系統(tǒng)里都是入口功能,一般情況下都不會太復(fù)雜。

          對于第三方用戶的接入技術(shù),也同樣比較簡單,我文章里設(shè)計(jì)多一個(gè)user_thirds是可以支持足夠多的第三方接入,當(dāng)然一般我們也就兩三個(gè)登錄就好,太多登錄方不僅自身維護(hù)成本,界面擺盤也不好看不是。

          希望大家能夠通過以上學(xué)習(xí),能夠?qū)τ谫~戶注冊登錄有一個(gè)比較好的認(rèn)知,文章里設(shè)計(jì)方案不包含分表分庫、沒有服務(wù)化,就是簡單直接的設(shè)計(jì),當(dāng)然用戶量和需要的不一樣,在這個(gè)基礎(chǔ)上還要加很多東西,謝謝大家閱讀。

          附錄:更多IM開發(fā)方面的文章

          [1] IM開發(fā)綜合文章:

          新手入門一篇就夠:從零開發(fā)移動端IM

          移動端IM開發(fā)者必讀(一):通俗易懂,理解移動網(wǎng)絡(luò)的“弱”和“慢”

          移動端IM開發(fā)者必讀(二):史上最全移動弱網(wǎng)絡(luò)優(yōu)化方法總結(jié)

          從客戶端的角度來談?wù)勔苿佣薎M的消息可靠性和送達(dá)機(jī)制

          現(xiàn)代移動端網(wǎng)絡(luò)短連接的優(yōu)化手段總結(jié):請求速度、弱網(wǎng)適應(yīng)、安全保障

          騰訊技術(shù)分享:社交網(wǎng)絡(luò)圖片的帶寬壓縮技術(shù)演進(jìn)之路

          小白必讀:閑話HTTP短連接中的Session和Token

          IM開發(fā)基礎(chǔ)知識補(bǔ)課:正確理解前置HTTP SSO單點(diǎn)登陸接口的原理

          移動端IM開發(fā)需要面對的技術(shù)問題

          開發(fā)IM是自己設(shè)計(jì)協(xié)議用字節(jié)流好還是字符流好?

          請問有人知道語音留言聊天的主流實(shí)現(xiàn)方式嗎?

          一個(gè)低成本確保IM消息時(shí)序的方法探討

          完全自已開發(fā)的IM該如何設(shè)計(jì)“失敗重試”機(jī)制?

          通俗易懂:基于集群的移動端IM接入層負(fù)載均衡方案分享

          微信對網(wǎng)絡(luò)影響的技術(shù)試驗(yàn)及分析(論文全文)

          即時(shí)通訊系統(tǒng)的原理、技術(shù)和應(yīng)用(技術(shù)論文)

          開源IM工程“蘑菇街TeamTalk”的現(xiàn)狀:一場有始無終的開源秀

          QQ音樂團(tuán)隊(duì)分享:Android中的圖片壓縮技術(shù)詳解(上篇)

          QQ音樂團(tuán)隊(duì)分享:Android中的圖片壓縮技術(shù)詳解(下篇)

          騰訊原創(chuàng)分享(一):如何大幅提升移動網(wǎng)絡(luò)下手機(jī)QQ的圖片傳輸速度和成功率

          騰訊原創(chuàng)分享(二):如何大幅壓縮移動網(wǎng)絡(luò)下APP的流量消耗(上篇)

          騰訊原創(chuàng)分享(三):如何大幅壓縮移動網(wǎng)絡(luò)下APP的流量消耗(下篇)

          如約而至:微信自用的移動端IM網(wǎng)絡(luò)層跨平臺組件庫Mars已正式開源

          基于社交網(wǎng)絡(luò)的Yelp是如何實(shí)現(xiàn)海量用戶圖片的無損壓縮的?

          騰訊技術(shù)分享:騰訊是如何大幅降低帶寬和網(wǎng)絡(luò)流量的(圖片壓縮篇)

          騰訊技術(shù)分享:騰訊是如何大幅降低帶寬和網(wǎng)絡(luò)流量的(音視頻技術(shù)篇)

          字符編碼那點(diǎn)事:快速理解ASCII、Unicode、GBK和UTF-8

          全面掌握移動端主流圖片格式的特點(diǎn)、性能、調(diào)優(yōu)等

          子彈短信光鮮的背后:網(wǎng)易云信首席架構(gòu)師分享億級IM平臺的技術(shù)實(shí)踐

          微信技術(shù)分享:微信的海量IM聊天消息序列號生成實(shí)踐(算法原理篇)

          自已開發(fā)IM有那么難嗎?手把手教你自擼一個(gè)Andriod版簡易IM (有源碼)

          融云技術(shù)分享:解密融云IM產(chǎn)品的聊天消息ID生成策略

          適合新手:從零開發(fā)一個(gè)IM服務(wù)端(基于Netty,有完整源碼)

          拿起鍵盤就是干:跟我一起徒手開發(fā)一套分布式IM系統(tǒng)

          >> 更多同類文章 …… 

          [2] 有關(guān)IM架構(gòu)設(shè)計(jì)的文章:

          淺談IM系統(tǒng)的架構(gòu)設(shè)計(jì)

          簡述移動端IM開發(fā)的那些坑:架構(gòu)設(shè)計(jì)、通信協(xié)議和客戶端

          一套海量在線用戶的移動端IM架構(gòu)設(shè)計(jì)實(shí)踐分享(含詳細(xì)圖文)

          一套原創(chuàng)分布式即時(shí)通訊(IM)系統(tǒng)理論架構(gòu)方案

          從零到卓越:京東客服即時(shí)通訊系統(tǒng)的技術(shù)架構(gòu)演進(jìn)歷程

          蘑菇街即時(shí)通訊/IM服務(wù)器開發(fā)之架構(gòu)選擇

          騰訊QQ1.4億在線用戶的技術(shù)挑戰(zhàn)和架構(gòu)演進(jìn)之路PPT

          微信后臺基于時(shí)間序的海量數(shù)據(jù)冷熱分級架構(gòu)設(shè)計(jì)實(shí)踐

          微信技術(shù)總監(jiān)談架構(gòu):微信之道——大道至簡(演講全文)

          如何解讀《微信技術(shù)總監(jiān)談架構(gòu):微信之道——大道至簡》

          快速裂變:見證微信強(qiáng)大后臺架構(gòu)從0到1的演進(jìn)歷程(一)

          17年的實(shí)踐:騰訊海量產(chǎn)品的技術(shù)方法論

          移動端IM中大規(guī)模群消息的推送如何保證效率、實(shí)時(shí)性?

          現(xiàn)代IM系統(tǒng)中聊天消息的同步和存儲方案探討

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(二):如何設(shè)計(jì)大量圖片文件的服務(wù)端存儲架構(gòu)?

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(三):快速理解服務(wù)端數(shù)據(jù)庫讀寫分離原理及實(shí)踐建議

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(四):正確理解HTTP短連接中的Cookie、Session和Token

          WhatsApp技術(shù)實(shí)踐分享:32人工程團(tuán)隊(duì)創(chuàng)造的技術(shù)神話

          微信朋友圈千億訪問量背后的技術(shù)挑戰(zhàn)和實(shí)踐總結(jié)

          王者榮耀2億用戶量的背后:產(chǎn)品定位、技術(shù)架構(gòu)、網(wǎng)絡(luò)方案等

          IM系統(tǒng)的MQ消息中間件選型:Kafka還是RabbitMQ?

          騰訊資深架構(gòu)師干貨總結(jié):一文讀懂大型分布式系統(tǒng)設(shè)計(jì)的方方面面

          以微博類應(yīng)用場景為例,總結(jié)海量社交系統(tǒng)的架構(gòu)設(shè)計(jì)步驟

          快速理解高性能HTTP服務(wù)端的負(fù)載均衡技術(shù)原理

          子彈短信光鮮的背后:網(wǎng)易云信首席架構(gòu)師分享億級IM平臺的技術(shù)實(shí)踐

          知乎技術(shù)分享:從單機(jī)到2000萬QPS并發(fā)的Redis高性能緩存實(shí)踐之路

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(五):通俗易懂,正確理解并用好MQ消息隊(duì)列

          微信技術(shù)分享:微信的海量IM聊天消息序列號生成實(shí)踐(算法原理篇)

          微信技術(shù)分享:微信的海量IM聊天消息序列號生成實(shí)踐(容災(zāi)方案篇)

          新手入門:零基礎(chǔ)理解大型分布式架構(gòu)的演進(jìn)歷史、技術(shù)原理、最佳實(shí)踐

          一套高可用、易伸縮、高并發(fā)的IM群聊、單聊架構(gòu)方案設(shè)計(jì)實(shí)踐

          阿里技術(shù)分享:深度揭秘阿里數(shù)據(jù)庫技術(shù)方案的10年變遷史

          阿里技術(shù)分享:阿里自研金融級數(shù)據(jù)庫OceanBase的艱辛成長之路

          社交軟件紅包技術(shù)解密(一):全面解密QQ紅包技術(shù)方案——架構(gòu)、技術(shù)實(shí)現(xiàn)等

          社交軟件紅包技術(shù)解密(二):解密微信搖一搖紅包從0到1的技術(shù)演進(jìn)

          社交軟件紅包技術(shù)解密(三):微信搖一搖紅包雨背后的技術(shù)細(xì)節(jié)

          社交軟件紅包技術(shù)解密(四):微信紅包系統(tǒng)是如何應(yīng)對高并發(fā)的

          社交軟件紅包技術(shù)解密(五):微信紅包系統(tǒng)是如何實(shí)現(xiàn)高可用性的

          社交軟件紅包技術(shù)解密(六):微信紅包系統(tǒng)的存儲層架構(gòu)演進(jìn)實(shí)踐

          社交軟件紅包技術(shù)解密(七):支付寶紅包的海量高并發(fā)技術(shù)實(shí)踐

          社交軟件紅包技術(shù)解密(八):全面解密微博紅包技術(shù)方案

          社交軟件紅包技術(shù)解密(九):談?wù)勈諵紅包的功能邏輯、容災(zāi)、運(yùn)維、架構(gòu)等

          即時(shí)通訊新手入門:一文讀懂什么是Nginx?它能否實(shí)現(xiàn)IM的負(fù)載均衡?

          即時(shí)通訊新手入門:快速理解RPC技術(shù)——基本概念、原理和用途

          多維度對比5款主流分布式MQ消息隊(duì)列,媽媽再也不擔(dān)心我的技術(shù)選型了

          從游擊隊(duì)到正規(guī)軍(一):馬蜂窩旅游網(wǎng)的IM系統(tǒng)架構(gòu)演進(jìn)之路

          從游擊隊(duì)到正規(guī)軍(二):馬蜂窩旅游網(wǎng)的IM客戶端架構(gòu)演進(jìn)和實(shí)踐總結(jié)

          IM開發(fā)基礎(chǔ)知識補(bǔ)課(六):數(shù)據(jù)庫用NoSQL還是SQL?讀這篇就夠了!

          瓜子IM智能客服系統(tǒng)的數(shù)據(jù)架構(gòu)設(shè)計(jì)(整理自現(xiàn)場演講,有配套PPT)

          阿里釘釘技術(shù)分享:企業(yè)級IM王者——釘釘在后端架構(gòu)上的過人之處

          >> 更多同類文章 ……

          (本文同步發(fā)布于:http://www.52im.net/thread-2863-1-1.html



          作者:Jack Jiang (點(diǎn)擊作者姓名進(jìn)入Github)
          出處:http://www.52im.net/space-uid-1.html
          交流:歡迎加入即時(shí)通訊開發(fā)交流群 215891622
          討論:http://www.52im.net/
          Jack Jiang同時(shí)是【原創(chuàng)Java Swing外觀工程BeautyEye】【輕量級移動端即時(shí)通訊框架MobileIMSDK】的作者,可前往下載交流。
          本博文 歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處(也可前往 我的52im.net 找到我)。


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          Jack Jiang的 Mail: jb2011@163.com, 聯(lián)系QQ: 413980957, 微信: hellojackjiang
          主站蜘蛛池模板: 金山区| 卢龙县| 张家界市| 延吉市| 清水河县| 江孜县| 英吉沙县| 安龙县| 伊宁市| 唐河县| 和田市| 东宁县| 准格尔旗| 睢宁县| 阿拉善左旗| 莒南县| 南平市| 家居| 万全县| 蓬莱市| 原平市| 健康| 宿州市| 呼玛县| 米林县| 晋江市| 澎湖县| 衡山县| 南开区| 泗洪县| 永胜县| 额尔古纳市| 利川市| 体育| 平遥县| 七台河市| 大田县| 米易县| 广南县| 东安县| 冷水江市|