+ /* Now that a client has connected, first we need to stream all of
+ * the existing spectators and players (if any). */
+ if (this._spectators.length > 0) {
+ const spectators_json = JSON.stringify(this.spectators);
+ const spectators_data = `event: spectators\ndata: ${spectators_json}\n\n`;
+ response.write(spectators_data);
+ }
+
+ if (this._players.length > 0) {
+ const players_json = JSON.stringify(this.players);
+ const players_data = `event: players\ndata: ${players_json}\n\n`;
+ response.write(players_data);
+ }
+
+ /* And we need to inform the client of the current game state.
+ *
+ * In fact, we need to cycle through each state transition from the
+ * beginning so the client can see each.
+ */
+ var old_state = null;
+ for (var state = GameState.JOIN; state <= this.state; state++) {
+ var event_data = this.game_state_event_data(old_state, state);
+ response.write("event: game-state\n" + "data: " + event_data + "\n\n");
+ old_state = state;
+ }
+ }