public void OnNewConnection(string TargetID, IMessageSocketInformation info, out bool AcceptFlag) { AcceptFlag = true; tempTimeString = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); info.Info_Description.Add("C.S. Ver.1.0.3.1, RegTime: " + tempTimeString); tempMessageControler = new MessageControler(_OnLineTable); _ChatMessageManager.addMessageHandler(TargetID, tempMessageControler); _OnLineTable.TryAdd(TargetID, tempMessageControler); Console.WriteLine("============================================================="); Console.WriteLine("Client NewConnection ID: " + TargetID); Console.WriteLine("Register Time: " + tempTimeString); Console.WriteLine("-------------------------------------------------------------"); Console.WriteLine("OnLine List:"); foreach (KeyValuePair <string, MessageControler> controler in _OnLineTable) { Console.WriteLine(controler.Key); } Task.Run(() => { ChartMessageContract tempContract = new ChartMessageContract(); string tempTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); List <string> onLineList = new List <string>(); foreach (KeyValuePair <string, MessageControler> controler in _OnLineTable) { onLineList.Add(controler.Key); } foreach (KeyValuePair <string, MessageControler> controler in _OnLineTable) { if (controler.Value.IsSendAvailable) { tempContract.UserOnlineLists = onLineList; tempContract.ServerMessageTime = tempTime; tempContract.RecvMessage = "Server: \"" + TargetID + "\" is online."; controler.Value.SendMessage(SerializeUtility.Serialize(tempContract)); } } }); Console.WriteLine("============================================================="); }
public void OnConnectionDisconnected(string TargetID, IMessageSocketInformation info) { MessageControler temp = null; _ChatMessageManager.removeMessageHandler(TargetID); _OnLineTable.TryRemove(TargetID, out temp); Console.WriteLine("============================================================="); Console.WriteLine("Client Disconnected ID: " + TargetID); Console.WriteLine("-------------------------------------------------------------"); Console.WriteLine("OnLine List:"); foreach (KeyValuePair <string, MessageControler> controler in _OnLineTable) { Console.WriteLine(controler.Key); } Task.Run(() => { ChartMessageContract tempContract = new ChartMessageContract(); string tempTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); List <string> onLineList = new List <string>(); foreach (KeyValuePair <string, MessageControler> controler in _OnLineTable) { onLineList.Add(controler.Key); } foreach (KeyValuePair <string, MessageControler> controler in _OnLineTable) { if (controler.Value.IsSendAvailable) { tempContract.UserOnlineLists = onLineList; tempContract.ServerMessageTime = tempTime; tempContract.RecvMessage = "Server: \"" + TargetID + "\" is offline."; controler.Value.SendMessage(SerializeUtility.Serialize(tempContract)); } } }); Console.WriteLine("============================================================="); }
public override void OnMessageReceive(IMessageContent msg) { Task.Run(() => { ChartMessageContract tempContract = new ChartMessageContract(); string tempTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); List <string> onLineList = new List <string>(); foreach (KeyValuePair <string, MessageControler> controler in _OnLineTable) { onLineList.Add(controler.Key); } foreach (KeyValuePair <string, MessageControler> controler in _OnLineTable) { if (controler.Value.IsSendAvailable) { tempContract.UserOnlineLists = onLineList; tempContract.ServerMessageTime = tempTime; tempContract.RecvMessage = msg.Data_MessageContent; controler.Value.SendMessage(SerializeUtility.Serialize(tempContract)); } } }); }