internal void SendResponse() { if (Response != null) { if (Response.Id > 0) { if (Session.GetConnection() != null) { Session.GetConnection().SendData(Response.GetBytes()); } } } }
internal void UnsafeSendMessage(ServerMessage Message) { if (Message == null) return; if (GetConnection() == null) return; GetConnection().SendUnsafeData(Message.GetBytes()); }
internal void SendNotif(string Message, Boolean FromHotelManager) { ServerMessage nMessage = new ServerMessage(); if (FromHotelManager) { nMessage.Init(139); } else { nMessage.Init(161); } nMessage.AppendStringWithBreak(Message); GetConnection().SendData(nMessage.GetBytes()); }
internal void SendBanMessage(string Message) { ServerMessage BanMessage = new ServerMessage(35); BanMessage.AppendStringWithBreak(LanguageLocale.GetValue("moderation.banmessage"), 13); BanMessage.AppendStringWithBreak(Message); GetConnection().SendData(BanMessage.GetBytes()); }
internal void appendResponse(ServerMessage message) { Appends(message.GetBytes()); }
internal void commands() { ServerMessage nMessage = new ServerMessage(); nMessage.Init(810); nMessage.Append(1); nMessage.Append(ChatCommandRegister.GenerateCommandList(Session)); Session.GetConnection().SendData(nMessage.GetBytes()); }
private void TestClientConnections() { TimeSpan sinceLastTime = DateTime.Now - pingLastExecution; if (sinceLastTime.TotalMilliseconds >= pingInterval) { try { ServerMessage PingMessage = new ServerMessage(50); List<GameClient> ToPing = new List<GameClient>(); //List<GameClient> ToDisconnect = new List<GameClient>(); TimeSpan noise; TimeSpan sinceLastPing; foreach (GameClient client in clients.Values) { noise = DateTime.Now - pingLastExecution.AddMilliseconds(pingInterval); //For finding out if there is any lagg sinceLastPing = DateTime.Now - client.TimePingedReceived; if (sinceLastPing.TotalMilliseconds - noise.TotalMilliseconds < pingInterval + 10000) { ToPing.Add(client); } else { lock (timedOutConnections.SyncRoot) { timedOutConnections.Enqueue(client); } //ToDisconnect.Add(client); //Console.WriteLine(client.ConnectionID + " => Connection timed out"); } } DateTime start = DateTime.Now; byte[] PingMessageBytes = PingMessage.GetBytes(); foreach (GameClient Client in ToPing) { try { Client.GetConnection().SendUnsafeData(PingMessageBytes); } catch { //ToDisconnect.Add(Client); lock (timedOutConnections.SyncRoot) { timedOutConnections.Enqueue(Client); } } } TimeSpan spent = DateTime.Now - start; if (spent.TotalSeconds > 3) { Console.WriteLine("Spent seconds on testing: " + (int)spent.TotalSeconds); } //start = DateTime.Now; //foreach (GameClient client in ToDisconnect) //{ // try // { // client.Disconnect(); // } // catch { } //} //spent = DateTime.Now - start; if (spent.TotalSeconds > 3) { Console.WriteLine("Spent seconds on disconnecting: " + (int)spent.TotalSeconds); } //ToDisconnect.Clear(); //ToDisconnect = null; ToPing.Clear(); ToPing = null; } catch (Exception e) { Logging.LogThreadException(e.ToString(), "Connection checker task"); } pingLastExecution = DateTime.Now; } }
internal void SendMessageToUsersWithRights(ServerMessage Message) { try { byte[] PacketData = Message.GetBytes(); foreach (RoomUser user in roomUserManager.UserList.Values) { if (user.IsBot) continue; GameClient UsersClient = user.GetClient(); if (UsersClient == null) continue; if (!CheckRights(UsersClient)) continue; try { UsersClient.GetConnection().SendData(PacketData); } catch (Exception e) { Logging.HandleException(e, "Room.SendMessageToUsersWithRights"); } //User.GetClient().SendMessage(Message); } } catch (Exception e) { Logging.HandleException(e, "Room.SendMessageToUsersWithRights"); } }
internal void SendMessage(ServerMessage Message) { try { if (Message == null) return; byte[] PacketData = Message.GetBytes(); lock (roomServerMessages.SyncRoot) { roomServerMessages.Enqueue(PacketData); } } catch (InvalidOperationException e) { Logging.HandleException(e, "Room.SendMessage"); } }
internal void QueueRoomMessage(ServerMessage message) { lock (roomServerMessages.SyncRoot) { roomServerMessages.Enqueue(message.GetBytes()); } }