国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

基于Tcp通信的聊天程序微風IM(c#開源) -技術分析(三) 客戶端下線

2019-11-17 02:33:38
字體:
來源:轉載
供稿:網友

基于Tcp通信的聊天程序微風IM(c#開源) -技術分析(三) 客戶端下線

NetworkComms網絡通信框架序言

在微風IM中,當某個客戶端下線后,其他客戶端能夠感知到此用戶已經下線,并把其頭像圖標變成灰色。

感知連接的掉線,是networkcomms框架內置的功能,服務器通過心跳檢測得知某連接掉線,會從networkcomms內部維護的連接列表中刪除此連接,并觸發相應的委托。

我們要處理某連接掉線,只需要注冊NetworkComms.AppendGlobalConnectionCloseHandler 方法即可

服務器端代碼如下:

  //如果某客戶端離線,觸發此方法            NetworkComms.AppendGlobalConnectionCloseHandler(HandleConnectionClosed);

客戶端某用戶離線的處理方法

  //處理某可客戶端離線情況        PRivate void HandleConnectionClosed(Connection connection)        {            try            {                               var tempUserID = "";                                lock (syncLocker)                {                    //在用戶字典中找到網絡連接相對應的用戶ID                    foreach (var kv in userManager)                    {                        //如果要關閉的網絡連接,與某個用戶的網絡連接相同,則找出此用戶                        if (kv.Value == connection.ConnectionInfo.NetworkIdentifier)                        {                            tempUserID = kv.Key;                            break;                        }                    }                    if (tempUserID != "")                    {                        //如果找到的用戶ID不為空,則從用戶字典中刪除此項                        if (userManager.ContainsKey(tempUserID))                        {                            //連接關閉時,從用戶管理器中刪除該用戶                            userManager.Remove(tempUserID);                        }                    }                }                //發送通知給其他客戶端,告知其某個用戶下線                 if (tempUserID != "")                {                                        UserStateNotify(tempUserID, false);                }                //應該發送一個消息給所有在線的其他用戶            }            catch (Exception ex)            {                LogTools.LogException(ex, "NetworkComms_ConnectionClosed");            }        }

www.networkcomms.cn

www.survivalescaperooms.com/networkcomms


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达孜县| 平潭县| 南涧| 胶州市| 沁源县| 玉田县| 八宿县| 沙洋县| 连云港市| 梧州市| 临江市| 福安市| 云霄县| 定兴县| 江永县| 土默特右旗| 探索| 远安县| 两当县| 苍溪县| 鄂尔多斯市| 鹿泉市| 大冶市| 沙田区| 长岛县| 隆德县| 嘉祥县| 昌邑市| 桐庐县| 武邑县| 双江| 潍坊市| 寿宁县| 敦化市| 杭锦后旗| 深圳市| 班玛县| 宁晋县| 和田县| 德庆县| 孟津县|