|
1 | 1 | using Microsoft.Extensions.Logging; |
2 | 2 | using Microsoft.Extensions.Options; |
3 | | -using Newtonsoft.Json; |
4 | | -using Newtonsoft.Json.Linq; |
5 | 3 | using System; |
6 | 4 | using System.Collections.Generic; |
7 | 5 | using System.Linq; |
8 | 6 | using System.Net.WebSockets; |
9 | 7 | using System.Text; |
| 8 | +using System.Text.Json; |
10 | 9 | using System.Threading; |
11 | 10 | using System.Threading.Tasks; |
12 | 11 | using System.Timers; |
@@ -132,9 +131,9 @@ public async Task StartAsync(IEnumerable<TwitchTopic> topics, CancellationToken |
132 | 131 | private void HandleMessage(string receivedMessage) |
133 | 132 | { |
134 | 133 |
|
135 | | - var jDoc = JObject.Parse(receivedMessage); |
136 | | - var messageType = jDoc["type"].Value<string>(); |
137 | | - if (messageType == "RESPONSE" && jDoc["error"].Value<string>() != "") |
| 134 | + var jDoc = JsonDocument.Parse(receivedMessage); |
| 135 | + var messageType = jDoc.RootElement.GetProperty("type").GetString(); |
| 136 | + if (messageType == "RESPONSE" && jDoc.RootElement.GetProperty("error").GetString() != "") |
138 | 137 | { |
139 | 138 | throw new Exception("Unable to connect"); |
140 | 139 | } else if (messageType == "RESPONSE") { |
@@ -165,7 +164,7 @@ private async Task StartListening(IEnumerable<TwitchTopic> topics) |
165 | 164 | }; |
166 | 165 |
|
167 | 166 | await _Socket.ConnectAsync(new Uri("wss://pubsub-edge.twitch.tv:443"), CancellationToken.None) |
168 | | - .ContinueWith(t => SendMessageOnSocket(JsonConvert.SerializeObject(message))); |
| 167 | + .ContinueWith(t => SendMessageOnSocket(JsonSerializer.Serialize(message))); |
169 | 168 |
|
170 | 169 | } |
171 | 170 |
|
@@ -245,16 +244,16 @@ private bool HandleReconnectMessage(string message) { |
245 | 244 |
|
246 | 245 | private bool HandleChannelPointsMessage(string message) { |
247 | 246 |
|
248 | | - var jDoc = JObject.Parse(message); |
| 247 | + var jDoc = JsonDocument.Parse(message); |
249 | 248 |
|
250 | | - if (jDoc["type"].Value<string>() == "MESSAGE" && jDoc["data"]["topic"].Value<string>().StartsWith("channel-points-channel-v1") ) { |
| 249 | + if (jDoc.RootElement.GetProperty("type").GetString() == "MESSAGE" && jDoc.RootElement.GetProperty("data").GetProperty("topic").GetString().StartsWith("channel-points-channel-v1") ) { |
251 | 250 |
|
252 | | - var innerMessage = jDoc["data"]["message"].Value<string>(); |
| 251 | + var innerMessage = jDoc.RootElement.GetProperty("data").GetProperty("message").GetString(); |
253 | 252 |
|
254 | 253 | PubSubRedemptionMessage messageObj = null; |
255 | 254 | try |
256 | 255 | { |
257 | | - messageObj = JsonConvert.DeserializeObject<PubSubRedemptionMessage>(innerMessage); |
| 256 | + messageObj = JsonSerializer.Deserialize<PubSubRedemptionMessage>(innerMessage); |
258 | 257 | } catch (Exception e) { |
259 | 258 | _Logger.LogError(e, "Error while deserializing the message"); |
260 | 259 | _Logger.LogInformation("Message contents: " + innerMessage); |
|
0 commit comments