国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于Netty實現的即時通訊

edagarli / 3746人閱讀

Jelly Jelly是一款基于Netty4.x開發的TCP長連接即時通訊服務器端程序;并且提供了Java客戶端API。 Github項目地址:Jelly 功能包括

賬戶:登錄、注冊、登出

好友:添加、刪除、好友在線狀態

消息:個人消息、討論組消息(在線消息和離線消息)

討論組:創建和解散討論組、添加和刪除成員

個人信息:修改個人信息、查看個人信息

Architecture 模塊介紹

jelly-launcher   啟動模塊(就一個類而已)

jelly-transport   數據傳輸模塊

jelly-serialization   序列化模塊

jelly-service   服務模塊

jelly-dao   數據訪問模塊

應用層協議
                                        Jelly Protocol
    __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
   |           |           |           |           |              |                          |
         2           1           1           1            4               Uncertainty
   |__ __ __ __|__ __ __ __|__ __ __ __|__ __ __ __|__ __ __ __ __|__ __ __ __ __ __ __ __ __|
   |           |           |           |           |              |                          |
       Magic        Sign        Type       Status     Body Length         Body Content
   |__ __ __ __|__ __ __ __|__ __ __ __|__ __ __ __|__ __ __ __ __|__ __ __ __ __ __ __ __ __|
 
   協議頭9個字節定長
       Magic      // 數據包的驗證位,short類型
       Sign       // 消息標志,請求/響應/通知,byte類型
       Type       // 消息類型,登錄/發送消息等,byte類型
       Status     // 響應狀態,成功/失敗,byte類型
       BodyLength // 協議體長度,int類型

數據交換格式:JSON(框架:Gson)

工作流程
              --------> Request        - - - - -> Response       -- -- --> Notice                    
---------------------------------------------------------------------------------------------------- 
                                                                                                     
                                                                                                     
                             __ __ __ __ __ __ __ __ __ __ __ __ __ __                               
                            |                  Server                 |                              
      __ __ __ __           |  __ __ __ __ __         __ __ __ __ __  |            __ __ __ __       
     |           | Request  | |              |       |              | |  Notice   |           |      
     |   Client  |--------> | | BlockingQueue| ----> |  ThreadPool  | | -- -- --> |   Client  |      
     |__ __ __ __|          | |__ __ __ __ __|       |__ __ __ __ __| |           |__ __ __ __|      
           |                |                                |        |                              
           |                |__ __ __ __ __ __ __ __ __ __ __|__ __ __|                              
           |                                                 |                                       
           |                    Response                     |                                       
            <- - - - - - - - - - - - - - - - - - - - - - - -                                         
                                                                                                     
                                                                                                     
---------------------------------------------------------------------------------------------------- 
其它說明 1. 登錄成功后

服務器端登錄信息驗證成功后生成Long類型的Token返回給客戶端,此Token用于斷線重連的驗證信息

開啟心跳檢測,客戶端每空閑5s發送一個心跳包,服務器端每空閑6s計一次心跳失敗

username和channel維護在一個Map集合中

2. 斷線重連

使用Token嘗試重連一次

3. 討論組信息

為了減小內存壓力,,在Server啟動時會開啟一個定時任務,每隔五分鐘檢查一次groupMap(保存討論組信息的Map集合),最后一次活躍時刻過去超過10分鐘的討論組被從內存中remove掉;直到下一次活躍時刻才會被調入內存(活躍就是組員發消息)

客戶端API

提供的都有API都是異步的,調用之后會返回一個Future,使用該Future添加相應的監聽器來得到的服務器的響應結果。

API詳細說明:JellyAPI

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66605.html

相關文章

  • Java+Netty、Vue+Element-UI實現即時通信應用 leo-im

    摘要:服務和服務之間的解耦和通訊可使用內置的隊列或發布訂閱實現,消息處理器接收到任務后,會將該任務交由線程池處理,處理后通過發送廣播或發給指定的。前端基于開發,建議使用瀏覽器體驗。在線體驗測試用戶,口令均為源碼地址服務端端 之前工作接觸了幾個開源的IM產品,再加上曾經用Netty實現過幾個服務,于是就有了用Netty實現一個IM的想法,于是用業余時間寫了一個IM,和喜歡Netty的程序員們分...

    zhaofeihao 評論0 收藏0
  • 即時通訊之服務端篇Tigase.

    摘要:摘要是一個應用層協議,主要做網頁版即時通訊,是基于和實現,服務端常見的框架有等,這三個都親自踩過坑,唯有相對牛逼完善一些,客戶端主要就是了。 摘要 xmpp是一個應用層協議,主要做網頁版即時通訊,是基于RFC3920和RFC3921實現,服務端常見的框架有openfire,tigase,prosody等,這三個都親自踩過坑,唯有tigase8.0相對牛逼(完善)一些,客戶端主要就是st...

    msup 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<