public static async Task ConnectToChat() { pingTimer = new Timer(PingCallback, null, TimeSpan.Zero, TimeSpan.FromSeconds(10)); while (true) { var unixTime = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; ChatRoomData["t"] = $"{unixTime}-0"; var request = new HttpRequestMessage(HttpMethod.Get, GetQueryString()); foreach (var pair in ChatHeaders) { request.Headers.Add(pair.Key, pair.Value); } var response = await chatHttpClient.SendAsync(request); while (!response.IsSuccessStatusCode) { response = await chatHttpClient.SendAsync(request); } var responseString = await response.Content.ReadAsStringAsync(); if (responseString.Contains("Session ID unknown")) { Tools.Log("Wikia", "Server returned 'session ID unknown'. Reconnecting."); //new Thread(() => { Restart(); }).Start(); WikiaDiscordBridge.Restart(); break; } if (responseString.Length > 20) { if (responseString.Contains("[\"message\"")) { while (responseString[0] != '[') { responseString = responseString.Substring(1); } while (responseString[responseString.Length - 1] != ']') { responseString = responseString.Substring(0, responseString.Length - 1); } dynamic responseObject = JsonConvert.DeserializeObject(responseString); dynamic responseDataObject = JsonConvert.DeserializeObject(responseObject[1].data.Value); await ChatEvent(responseObject, responseDataObject); } } } }
public static void ConnectToChat() { PingContinuously(); while (true) { var unixTime = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; ChatRoomData["t"] = $"{unixTime}-0"; var request = new RestRequest("/socket.io/"); foreach (var pair in ChatRoomData) { request.AddParameter(pair.Key, pair.Value); } foreach (var pair in ChatHeaders) { request.AddHeader(pair.Key, pair.Value); } var response = ChatRestClient.Execute(request); if (response.Content.Contains("Session ID unknown")) { Console.WriteLine("Server returned 'session ID unknown'. Reconnecting."); //new Thread(() => { Restart(); }).Start(); WikiaDiscordBridge.Restart(); break; } else if (response.Content.Length > 20) { var responseString = response.Content; if (responseString.Contains("[\"message\"")) { while (responseString[0] != '[') { responseString = responseString.Substring(1); } while (responseString[responseString.Length - 1] != ']') { responseString = responseString.Substring(0, responseString.Length - 1); } dynamic responseObject = JsonConvert.DeserializeObject(responseString); dynamic responseDataObject = JsonConvert.DeserializeObject(responseObject[1].data.Value); ChatEvent(responseObject, responseDataObject); } } } }