|
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