protected override void InitializeHandlers() { _host.AddHandler((short)MatchmakingMessages.GameFound, (m, c) => { var ds = DataStorage.CreateForRead(m.Body); _roomToken = new Token(); _roomToken.ReadFromDs(ds); OnGameFound.Invoke(); }); _host.AddHandler((short)MatchmakingMessages.ValidateActivity, (m, c) => { _host.Send(new Message((short)MatchmakingMessages.ValidateActivitySuccess, Mode.Reliable)); }); _account.AddHandler((short)MatchmakingMessages.MatchmakingRequest, (m, a) => { Console.WriteLine("matchmaking request from {0}", a.Connection.EndPoint.ToString()); lock (_playerQueue) { _playerQueue.AddPlayer(a); } }); _account.AddHandler((short)MatchmakingMessages.CancelMatchmaking, (m, a) => { lock (_playerQueue) { _playerQueue.RemovePlayer(a); } }); }
public void connectToServer(OnFindGameReqSendComplete onSendComplete, OnGameFound onGameFound) { this.onSendComplete = onSendComplete; this.onGameFound = onGameFound; Thread reqGameThread = new Thread(new ThreadStart(connectToServer)); reqGameThread.Start(); }
public override void AddPlayer(AccountImpl player) { lock (_players) { _players.Add(player); if (_players.Count == 2) { OnGameFound.Invoke(_players.ToArray()); _players.Clear(); } } }