protected void Send(AbstractCommand command) { var encode = command.Encode(); LogManager.Log(LogLevel.MessageVeryLow, "LobbyTcpClient.Receive", "{0} SENT [{1}]", PlayerName, encode); base.Send(encode); }
public override void Send(AbstractCommand command) { var gameCommand = command as AbstractGameCommand; if (gameCommand != null) { gameCommand.TableId = m_NoPort; } base.Send(command); }
protected override void Run() { while (IsConnected) { LogManager.Log(LogLevel.MessageVeryLow, "LobbyTcpClient.Run", "{0} IS WAITING", PlayerName); var line = Receive(); if (line == null) { ServerLost(); return; } LogManager.Log(LogLevel.MessageVeryLow, "LobbyTcpClient.Run", "{0} RECV [{1}]", PlayerName, line); try { AbstractCommand cmd = AbstractCommand.DeserializeCommand(line); if (cmd.CommandType == TaluvaCommandEnum.Game) { var c = (IGameCommand)cmd; //Be patient var count = 0; while (!m_Clients.ContainsKey(c.TableId) && (count++ < 5)) { Thread.Sleep(100); } if (m_Clients.ContainsKey(c.TableId)) { m_Clients[c.TableId].Incoming(line); } } else { m_Incoming.Enqueue(line); } } catch { LogManager.Log(LogLevel.ErrorHigh, "LobbyTcpClient.Run", "{0} RECV UNKNOWN COMMAND", PlayerName); } } }