private void onReceiveMessage(Client from, Message message, RespondMessage respond) { switch (message.Method) { case "Ping": respond(new ClientPingResponse() { ClientId = MyClientId }); return; } switch (message.Type) { case MessageType.Client: { onMessage?.Invoke(from, message, respond); return; } case MessageType.ClientPool: { var pool = pools.FirstOrDefault(a => a.PoolName == message.ToPool); pool?.ReceiveMessage(from, message, respond); return; } case MessageType.Pool: { var pool = pools.FirstOrDefault(a => a.PoolName == message.ToPool); pool?.ReceiveMessage(from, message, respond); return; } case MessageType.PoolAll: { var pool = pools.FirstOrDefault(a => a.PoolName == message.ToPool); pool?.ReceiveMessage(from, message, respond); } break; default: throw new Exception("Type not found: " + message); } }
public void ReceiveMessage(Client from, Message message, RespondMessage respond) { onMessage?.Invoke(from, message, respond); }