国产探花免费观看_亚洲丰满少妇自慰呻吟_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

m.survivalescaperooms.com/networkcomms


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杭锦旗| 如东县| 郴州市| 平江县| 桐城市| 镇远县| 桂东县| 民县| 当阳市| 高密市| 体育| 台北市| 新巴尔虎左旗| 安国市| 甘肃省| 银川市| 罗城| 怀化市| 三都| 无棣县| 郯城县| 镇巴县| 原阳县| 宣威市| 耿马| 萨迦县| 南木林县| 九龙城区| 张北县| 白银市| 扎囊县| 抚松县| 娄烦县| 施秉县| 宣恩县| 廉江市| 绥阳县| 祥云县| 祥云县| 清流县| 辽宁省|