欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

ESFramework Demo -- 動態組及群聊Demo(附源

系統 2137 0

所謂“動態組”,就是在服務器內存中動態創建的組,不需要序列化存儲到比如數據庫或磁盤中,更像是一個臨時的東西,需要的時候就創建一個,然后加入多個成員進行組內溝通,當不再使用的時候,就直接從內存中銷毀了。在閱讀本文之前,請務必先掌握 ESFramework 開發手冊(05) -- 好友與組 一文中介紹的關于組關系的基礎知識以及相關API的用法。

本Demo主要演示以下功能:

(1)創建動態組

(2)加入動態組

(3)在組內廣播消息。(群聊)

(4)退出動態組

(5)銷毀動態組

一.公共定義

對于一個C/S系統來說,客戶端和服務端必需在某些定義上達成一致,比如信息類型的定義、協議類的定義等。 DynamicGroupDemo.Core這個程序集就是我們這個demo用于公共定義的地方,它將被客戶端和服務端共同使用。

首先,我們要根據需求確定所需的自定義信息類型,我們用GroupInformationTypes靜態類來表示:

然后,根據不同的信息類型,定義對應的信息協議類,像GroupContract、TextChatContract。

二.服務端

1.實現組管理器接口IGroupManager

既然是要實現動態組的功能,那么服務端就必須實現IGroupManager接口,Demo里面定義了DynamicGroupManager類從IGroupManager接口繼承。

DynamicGroupManager類除了實現IGroupManager接口的方法以外,另外還實現了創建組、加入組、退出組和刪除組的方法。

為了框架能夠使用我們自定義的組管理器DynamicGroupManager,我們必須在服務端引擎初始化之前,進行相關設置:

客戶端想要進行動態組的操作,必須通過自定義消息把指令發送到服務端,所以服務端還必須實現ICustomizeHandler接口,Demo里面定義了CustomizeHandler類。

2.實現自定義處理器接口ICustomizeHandler

服務端自定義處理器處理了創建組、加入組、退出組、銷毀組等請求,并且當有人加入/退出組時,通知其他組成員。由于CustomizeHandler在處理這些請求時用到了組管理器,所以上面的代碼,將組管理器的引用作為構造參數傳遞給自定義信息處理器。

另外,群聊消息不需要被自定義處理器處理,它將直接由框架提供的廣播機制進行自動轉發。

三.客戶端

1.封裝工具類GroupTools

首先,我們將與組操作相關的動(如創建組、加入組等)作封裝成一個類GroupTools,后面直接使用GroupTools就好了。封裝成GroupTools的好處是,在以后我們正式的項目中,可以直接將其拷貝過去做適當的修改就可以用于我們自己的項目了。

創建組(CreateGroup)的時候,調用RapidPassiveEngine的CustomizeOutter的Send方法發送GroupInformationTypes.CreateGroup類型的自定義信息給服務端即可 。

加入組(JoinGroup)的時候,調用RapidPassiveEngine的CustomizeOutter的Query方法消息給服務端,等待服務端返回加入是否成功的結果。

除了CreateGroup、JoinGroup外,GroupTools還實現了QuitGroup和DestroyGroup方法。

2.UI與Demo邏輯

用戶登錄成功以后,進入組選擇的界面。可以自己創建一個組(默認組名和用戶名一致),也可以加入已經存在的組(如果組存在,則加入成功;如果組不存在,則加入失敗)。

加入組或創建組成功后,就會進入到群聊的界面,可以開始群聊:

ESFramework Demo -- 動態組及群聊Demo(附源碼)

群聊消息直接通過框架提供的IGroupOutter的Broadcast方法進行廣播發送,客戶端通過預定IGroupOutter的BroadcastReceived事件來處理接收到的群聊消息。

客戶端通過IGroupOutter的GroupmateConnected和GroupmateOffline事件,來得到組友的上下線通知。

要注意的是,我們在demo中還處理了以下幾種情況:

(1)成員加入組或組成員上線的時候,客戶端會將其顯示在組成員列表中。

(2)如果組成員掉線或退出組,服務端自動將其從組中移除,客戶端則將其從組成員列表中移除。

(3)如果自己掉線重連成功后,會重新加入之前的組。

四.源碼下載

ESFramework.Demos.DynamicGroup 源碼

閱讀 更多ESFramework開發手冊系列文章

-----------------------------------------------------------------------------------------------------------------------------------------------

關于ESFramework的任何問題,歡迎聯系我們:

電話:027-87638960

Q Q:372841921


ESFramework Demo -- 動態組及群聊Demo(附源碼)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美自拍视频在线 | 国产精品久久久久久久久久久新郎 | 欧美精品99 | 欧美性高清视频免费看www | www日韩免费高清视频 | 久9久9精品视频在线观看 | 伊人狠狠干 | 四虎影院在线播放 | 亚洲毛片在线观看 | 成人免费高清 | 久久精品视频免费观看 | 日韩在线免费视频 | 在线播放高清视频www | 五月天婷婷基地 | 久久成人一区二区 | 国产精品一区二区在线观看 | 日本v片做爰免费视频网站 国产精品v欧美精品v日韩精品 | 精品一区二区三区网站 | 米奇7777狠狠狠狠视频 | 鲁在线视频| 国产精品成在线观看 | 国产精品在线 | 久久亚洲国产午夜精品理论片 | 国产亚洲综合一区二区 | 夜夜爽夜夜叫夜夜高潮漏水 | 99热热精品 | 一个色综合网站 | 伊人9999| 日韩在线欧美 | 日韩欧美一级大片 | 久久亚洲高清 | 欧美激情bbbbbxxxxⅹ | 鲁丝片一区二区三区毛片 | 99久久99| 99热97| 两性午夜视频 | 91精品国产日韩91久久久久久360 | 波多野结衣综合 | 国产精品久久久久aaaa九色 | 99久久99热这里只有精品 | 欧美电影网站在线观看影片 |