public static void ExecutePacketAndBroadcast(HaProtoImpl.Opcode op, HaProtoImpl.HaProtoPacket packet) { bool announceIndexChange = packet.ApplyToDatabase(Program.Core.DataSource); if (announceIndexChange) { Program.Core.AnnounceIndexChange(); } Program.Server.BroadcastMessage(op, packet); }
private void ExecutePacketAndBroadcast(HaProtoImpl.Opcode op, HaProtoImpl.HaProtoPacket packet) { bool announceIndexChange; lock (dataSource.Lock) { announceIndexChange = packet.ApplyToDatabase(dataSource); } if (announceIndexChange) { AnnounceIndexChange(); } BroadcastMessage(op, packet); }
public void BroadcastMessage(HaProtoImpl.Opcode type, HaProtoImpl.HaProtoPacket packet, Client exempt = null) { byte[] data = packet.Build(); lock (clients) { for (int i = 0; i < clients.Count; i++) { Client c = clients[i]; if (c == exempt) { continue; } HaProtoImpl.Send(c.Socket, type, data); } } }
public void Send(HaProtoImpl.Opcode type, HaProtoImpl.HaProtoPacket packet) { Send(type, packet.Build()); }
public static void Send(Socket s, Opcode type, HaProtoImpl.HaProtoPacket x) { Send(s, type, x.Build()); }
public static async Task SendAsync(NetworkStream stream, Opcode type, HaProtoImpl.HaProtoPacket x) { await SendAsync(stream, type, x.Build()); }