public void StartQuizGame(IWebSocketConnection Socket) { //if quiz game already started send messages in memory to new connection if (quizGame != null && quizGame.Messages != null && quizGame.Messages.Any()) { foreach (var message in quizGame.Messages.OrderBy(d => d.Key)) { QuizMessage msg = new JavaScriptSerializer().Deserialize<QuizMessage>(message.Value); if (msg.SocketId == Guid.Empty) { Socket.Send(message.Value); } } } quizGame = QuizGame.Instance; QuizGameStarted = true; lock (socketSync) { if (!sockets.Any(d => d == Socket)) sockets.Add(Socket); } AuthenticateUser(Socket.ConnectionInfo.Cookies, Socket); if (sockets.Count == 1) { quizGame.MessageArrived += quizGame_MessageArrived; quizGame_MessageArrived(null, null); clientPing = new Timer(15000); clientPing.Elapsed += clientPing_Elapsed; clientPing.Start(); } }
public void StartQuizGame(IWebSocketConnection Socket) { socket = Socket; quizGame = QuizGame.Instance; quizGame.MessageArrived += quizGame_MessageArrived; }