private void OnAddClient(CometAsyncRequestState state, CometEventArgs e) { if (!IsClientUsed(state.ClientId)) { int lastIdx = Math.Max(_games.Count - 1, 0); Game game = _games.Count > lastIdx ? _games[lastIdx] : null; if (null == game || (!string.IsNullOrEmpty(game.ClientId1) && !string.IsNullOrEmpty(game.ClientId2))) { game = new Game(); _games.Add(game); } if (string.IsNullOrEmpty(game.ClientId1)) { game.ClientId1 = state.ClientId; } else if (string.IsNullOrEmpty(game.ClientId2)) { game.ClientId2 = state.ClientId; startGameResponse response = new startGameResponse(); response.GameId = game.GameId; response.FirstClientId = (new Random().Next(100)) > 50 ? game.ClientId1 : game.ClientId2; CometClientProcessor.Inst.SendToClient(game.ClientId1, response); CometClientProcessor.Inst.SendToClient(game.ClientId2, response); } } }
private void OnRemoveClient(CometAsyncRequestState state, CometEventArgs e) { }