private bool isvalidstartthegamerequest(StartTheGameRequest startthegamerequest) { if (startthegamerequest.teamA.Count == 1 && startthegamerequest.teamB.Count == 1) { return(true); } return(false); }
public override void OnMessage(string message) { try { WebSocketRequest mywebsocketrequest = JsonConvert.DeserializeObject <WebSocketRequest>(message); //TAKE JSON JOINTEAMREQUEST,VALIDATE AND IF VALID SEND THE SAME MESSAGE BACK, AND UPDATE SERVERSIDED TEAMS if (mywebsocketrequest.typeofalert.Equals("jointeamrequest")) { string data = JsonConvert.SerializeObject(mywebsocketrequest.data); JoinTeamRequest jointeamrequest = JsonConvert.DeserializeObject <JoinTeamRequest>(data); if (isvalidupdateteamrequest(jointeamrequest)) { clients.Broadcast(message); } } //TAKE JSON REQUEST TO GET TEAMS AND GENERATE A NEW JSONRESPONSE WIH THE CURRENT STATE OF TEAMS if (mywebsocketrequest.typeofalert.Equals("getstateofteams")) { JObject o = new JObject(); JArray serializedteams = new JArray(); JObject teamAjJObject = new JObject(); teamAjJObject["team"] = JToken.Parse(JsonConvert.SerializeObject(clients.teamA)); JObject teamBjJObject = new JObject(); teamBjJObject["team"] = JToken.Parse(JsonConvert.SerializeObject(clients.teamB)); serializedteams.Add(teamAjJObject); serializedteams.Add(teamBjJObject); o["teams"] = serializedteams; o["typeofalert"] = "getstateofteams"; clients.Broadcast(o.ToString()); } if (mywebsocketrequest.typeofalert.Equals("startthegamerequest")) { string data = JsonConvert.SerializeObject(mywebsocketrequest.data); StartTheGameRequest startthegamerequest = JsonConvert.DeserializeObject <StartTheGameRequest>(data); if (isvalidstartthegamerequest(startthegamerequest)) { clients.Broadcast(message); } } if (mywebsocketrequest.typeofalert.Equals("ingamerequest")) { clients.Broadcast(message); } if (mywebsocketrequest.typeofalert.Equals("victoryrequest")) { clients.Broadcast(message); } } catch (Exception e) { //IF DESERIALIZING DOES NOT WORK, THEN TREAT MESSAGE AS CHAT MESSAGE clients.Broadcast(name + " has said " + message); } }