Exemplo n.º 1
0
 public void MqServer_SessionClosed(MQProtocolSession session, CSuperSocket.SocketBase.CloseReason value)
 {
     try
     {
         if (session.TopicMode.TopicDic.Count > 0)
         {
             foreach (var r in session.TopicMode.TopicDic.Keys)          //room
             {
                 foreach (var t in session.TopicMode.TopicDic[r].Keys)   //topic
                 {
                     foreach (var g in session.TopicMode.TopicDic[r][t]) //tag
                     {
                         if (mqServer.TopicMessageQueueDict.ContainsKey(r) && mqServer.TopicMessageQueueDict[r].ContainsKey(t) && mqServer.TopicMessageQueueDict[r][t].ContainsKey(g))
                         {
                             mqServer.TopicMessageQueueDict[r][t][g].Remove(session);
                         }
                         mqServer.TopicMessageQueueDict[r][t][g].TrimExcess();
                     }
                 }
             }
         }
     }
     catch (Exception e)
     {
         mqServer.Logger.Error(session, new Exception("移除主题字典失败", e));
     }
     mqServer.Logger.Info(session.RemoteEndPoint.ToString() + " closed. reason:" + value);
 }
Exemplo n.º 2
0
 private static void Service_SessionClosed(Session session, CSuperSocket.SocketBase.CloseReason value)
 {
     Console.WriteLine(session.SessionID + "断开");
 }