private static void ServerConnectors_OnDebugLog(ServerConnectorContext connectorContext, DebugLogType logType, string info) { var remoteEndPoint = "NA"; try { remoteEndPoint = connectorContext.Socket.RemoteEndPoint.ToString(); } catch { } Console.WriteLine($"ServerConnectors_OnDebugLog RemoteEndPoint:{remoteEndPoint} logType:{logType} info:{info}"); }
internal void Logout(string username, ServerConnectorContext serverConnectorContext) { if (Users.TryGetValue(username, out var connectorsIds)) { connectorsIds.Remove(serverConnectorContext.Id); } }
private static void ServerConnectors_OnRequestMultiResponses( ServerConnectorContext serverConnectorContext, int module, int command, int requestId, object packet, RequestMultiResponsesServerCallback callback) { Console.WriteLine("ServerConnectors_OnRequestMultiResponses"); var list = new List<string>(); for (int i = 0; i < 3500; i++) { list.Add(i.ToString()); if (i % 1000000 == 0) Console.WriteLine(i); } //callback( // serverConnectorContext, module, command, requestId, // new GetListResponsePacket() { Records = list }, // false, 1, 3, null); ////throw new Exception("ServerConnectors_OnRequestMultiResponses"); //callback( // serverConnectorContext, module, command, requestId, // new GetListResponsePacket() { Records = list }, // false, 2, 3, null); //callback( // serverConnectorContext, module, command, requestId, // new GetListResponsePacket() { Records = list }, // true, 3, 3, null); serverConnectorContext.SendMultiResponse(module, command, requestId, callback, new GetListResponsePacket(), list, 100); }
private static void ServerConnectors_OnDisconnect(ServerConnectorContext serverConnectorContext) { var remoteEndPoint = "NA"; try { remoteEndPoint = serverConnectorContext.Socket.RemoteEndPoint.ToString(); } catch { } Console.WriteLine($"ServerConnectors_OnDisconnect RemoteEndPoint:{remoteEndPoint}"); }
//private object ServerConnectors_OnRequestPacket(ServerConnectorContext serverConnectorContext, int module, int command, object packet) //{ //} private static void ServerConnectors_OnPacket(ServerConnectorContext serverConnectorContext, int module, int command, object packet) { Console.WriteLine($"ServerConnectors_OnPacket RemoteEndPoint:{serverConnectorContext.Socket.RemoteEndPoint.ToString()} \r\n module:{module} command:{command} \r\n packet:{packet.GetType().Name + ": " + JsonConvert.SerializeObject(packet)}"); //sends echo _serverConnectors.Send(serverConnectorContext.Id, 1, 1, "echo: " + packet.ToString()); }
private object ServerConnectors_OnRequestPacket(ServerConnectorContext connectorContext, int module, int command, object packet) { var remoteEndPoint = "NA"; try { remoteEndPoint = connectorContext.Socket.RemoteEndPoint.ToString(); } catch { } if (packet is LoginRequestPacket) { Console.WriteLine($"ServerConnectors_OnRequestPacket RemoteEndPoint:{remoteEndPoint} LoginRequestPacket:{JsonConvert.SerializeObject(packet)}"); return(new LoginResponsePacket() { RetCode = true, Message = "OK" }); } if (packet is ReportRequestPacket) { Console.WriteLine($"ServerConnectors_OnRequestPacket RemoteEndPoint:{remoteEndPoint} ReportRequestPacket:{JsonConvert.SerializeObject(packet)}"); var records = new List <string>(100); for (int i = 0; i < 100; i++) { records.Add("this is record" + i); } return(new ReportResponsePacket() { Records = records }); } return(null); }
private static void ServerConnectors_OnException(ServerConnectorContext connectorContext, Exception exp) { var remoteEndPoint = "NA"; try { remoteEndPoint = connectorContext.Socket.RemoteEndPoint.ToString(); } catch { } Console.WriteLine($"ServerConnectors_OnException RemoteEndPoint:{remoteEndPoint} ex:{exp.ToString()}"); }
private object ServerConnectors_OnRequestPacket(ServerConnectorContext serverConnectorContext, int module, int command, object packet) { Console.WriteLine($"ServerConnectors_OnRequestPacket RemoteEndPoint:{serverConnectorContext.Socket.RemoteEndPoint.ToString()} \r\n module:{module} command:{command} \r\n packet:{packet.GetType().Name + ": " + JsonConvert.SerializeObject(packet)}"); var resPacket = HandleRequestPacket(serverConnectorContext, module, command, (dynamic)packet); Console.WriteLine($"===> res packet:{resPacket.GetType().Name + ": " + JsonConvert.SerializeObject(resPacket)}"); return(resPacket); }
internal void HandlePacket(ServerConnectorContext serverConnectorContext, int module, int command, SendPrivateMessagePacket packet) { var msgPacket = new OnMessagePacket() { Message = packet.Message, }; _serverConnectors.Send(x => x.Data?.ToString() == packet.Username, module, command, msgPacket); }
internal object HandleRequestPacket(ServerConnectorContext serverConnectorContext, int module, int command, GetGroupsRequestPacket packet) { var resPacket = new GetGroupsResponsePacket() { GroupNames = Program.ChatServerModel.Groups.Values.Select(x => x.GroupName).ToList() }; return(resPacket); }
internal object HandleRequestPacket(ServerConnectorContext serverConnectorContext, int module, int command, LeaveGroupRequestPacket packet) { string errMsg = Program.ChatServerModel.LeaveGroup(packet.GroupName, serverConnectorContext.Id.ToString()); var resPacket = new LeaveGroupResponsePacket() { RetCode = errMsg == null, Message = errMsg ?? $"Left {packet.GroupName} OK", }; return(resPacket); }
private void ServerConnectors_OnDisconnect(ServerConnectorContext serverConnectorContext) { var remoteEndPoint = "NA"; try { remoteEndPoint = serverConnectorContext.Socket.RemoteEndPoint.ToString(); } catch { } Console.WriteLine($"ServerConnectors_OnDisconnect RemoteEndPoint:{remoteEndPoint}"); if (serverConnectorContext.Data != null) { Program.ChatServerModel.Logout(serverConnectorContext.Data.ToString(), serverConnectorContext); } }
internal void HandlePacket(ServerConnectorContext serverConnectorContext, int module, int command, SendGroupMessagePacket packet) { var msgPacket = new OnMessagePacket() { Message = packet.Message, }; if (Program.ChatServerModel.Groups.TryGetValue(packet.GroupName, out var chatGroup) == false) { return; } _serverConnectors.Send(x => chatGroup.Members.Contains(x.Id.ToString()), module, command, msgPacket); }
internal object HandleRequestPacket(ServerConnectorContext serverConnectorContext, int module, int command, GetGroupInfoRequestPacket packet) { Program.ChatServerModel.Groups.TryGetValue(packet.GroupName, out var group); var resPacket = new GetGroupInfoResponsePacket() { RetCode = group != null, Admin = group?.Admin, GroupName = group?.GroupName, Members = group?.Members, }; return(resPacket); }
private static object ServerConnectors_OnRequestPacket(ServerConnectorContext connectorContext, int module, int command, object packet) { var list = new List<string>(); //var n = 35_000_000; var n = 3_500_000; //throw new Exception("ServerConnectors_OnRequestPacket"); for (int i = 0; i < n ; i++) { list.Add(i.ToString()); if (i % 1000000 == 0) Console.WriteLine(i); } return new GetListResponsePacket() { Records = list }; }
internal string Login(string username, ServerConnectorContext serverConnectorContext) { if (string.IsNullOrWhiteSpace(username)) { return("username is empty"); } if (Users.TryGetValue(username, out var connectorsIds) == false) { connectorsIds = new HashSet <int>(); Users[username] = connectorsIds; } connectorsIds.Add(serverConnectorContext.Id); //user can be connected multiple times serverConnectorContext.Data = username; return(null); }
internal object HandleRequestPacket(ServerConnectorContext serverConnectorContext, int module, int command, LoginRequestPacket packet) { string errMsg = Program.ChatServerModel.Login(packet.Username, serverConnectorContext); bool retcode = errMsg == null; if (retcode == true) { Program.ChatServerModel.JoinGroup("Lobby", serverConnectorContext.Id.ToString()); } var resPacket = new LoginResponsePacket() { RetCode = retcode, Message = retcode ? "Login OK" : errMsg }; return(resPacket); }
private static object ServerConnectors_OnRequestPacket(ServerConnectorContext arg1, int arg2, int arg3, object arg4) { throw new NotImplementedException(); }
internal object HandleRequestPacket(ServerConnectorContext serverConnectorContext, int module, int command, dynamic packet) { Console.WriteLine("Warning HandlePacket - type object"); return(null); }
private void ServerConnectors_OnPacket(ServerConnectorContext serverConnectorContext, int module, int command, object packet) { Console.WriteLine($"ServerConnectors_OnPacket RemoteEndPoint:{serverConnectorContext.Socket.RemoteEndPoint.ToString()} \r\n module:{module} command:{command} \r\n packet:{packet.GetType().Name + ": " + JsonConvert.SerializeObject(packet)}"); HandlePacket(serverConnectorContext, module, command, (dynamic)packet); }
private void ServerConnectors_OnNewConnector(ServerConnectorContext serverConnectorContext) { Console.WriteLine($"ServerConnectors_OnNewConnector RemoteEndPoint:{serverConnectorContext.Socket.RemoteEndPoint.ToString()}"); }
internal void HandlePacket(ServerConnectorContext serverConnectorContext, int module, int command, dynamic packet) { Console.WriteLine("Warning HandlePacket - type object"); }