/// <summary> /// ћетод, при получении сообщени¤ от клиента /// </summary> /// <param name="client"></param> /// <param name="command"></param> private void OnPushMessage(IRemoteClient client, IRoomCommand command) { if (client.RoomChannel == null) { client.Detach(); return; } //если у комнаты ещЄ не истекло врем¤, то отправл¤ем команду if (!client.RoomChannel.IsExpired) { client.RoomChannel.SendAll(command, c => c != client); } }
/// <summary> /// лиент входит в комнату /// </summary> /// <param name="client"></param> /// <param name="command"></param> private void OnClientEnterToRoom(IRemoteClient client, IRoomCommand command) { //пытаемс¤ получить номер комнаты string roomId; if (!command.Data.TryGetValue("RoomId", out roomId)) { _log.ErrorFormat("Client {0} try create room with empty Id", client.ClientId); client.Detach(); return; } //устанавливаем номер комнаты client.Room = roomId; //возвращаем или создаем комнату var room = GetRoom(roomId) ?? CreateRoom(roomId); //добавл¤ем туда клиента room.Add(client); }