本文整理汇总了C#中Silverwave.Messages.ServerMessage.GetBytes方法的典型用法代码示例。如果您正苦于以下问题:C# ServerMessage.GetBytes方法的具体用法?C# ServerMessage.GetBytes怎么用?C# ServerMessage.GetBytes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Silverwave.Messages.ServerMessage
的用法示例。
在下文中一共展示了ServerMessage.GetBytes方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: QueueRoomMessage
internal void QueueRoomMessage(ServerMessage message)
{
lock (roomServerMessages.SyncRoot)
{
roomServerMessages.Enqueue(message.GetBytes());
}
}
示例2: SendMessageToUsersWithRights
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"); }
}
示例3: ModAlert
internal void ModAlert(ServerMessage Message)
{
byte[] bytes = Message.GetBytes();
foreach (GameClient client in clients.Values)
{
if (client == null || client.GetHabbo() == null)
{
continue;
}
if (client.GetHabbo().Rank == 4 || client.GetHabbo().Rank == 5 || client.GetHabbo().Rank == 6)
try
{
client.GetConnection().SendData(bytes);
}
catch
{ }
}
}
示例4: TestClientConnections
private void TestClientConnections()
{
TimeSpan sinceLastTime = DateTime.Now - pingLastExecution;
if (sinceLastTime.TotalMilliseconds >= pingInterval)
{
try
{
ServerMessage PingMessage = new ServerMessage(Outgoing.Ping);
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
{
if (Client.GetConnection() != null)
Client.GetConnection().SendUnsafeData(PingMessageBytes);
else
{
lock (timedOutConnections.SyncRoot)
{
timedOutConnections.Enqueue(Client);
}
}
}
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;
}
}
示例5: appendResponse
internal void appendResponse(ServerMessage message)
{
appendBytes(message.GetBytes());
}