aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Net
diff options
context:
space:
mode:
authorCody Robibero <cody@robibe.ro>2023-07-02 16:14:44 -0600
committerGitHub <noreply@github.com>2023-07-02 16:14:44 -0600
commit52252fcd554a7ac1105374ca6d1b440787820f0a (patch)
treed7dd8598fd04dddd3a180e146bb222810a6fd4c0 /MediaBrowser.Controller/Net
parentba8f4757fd1323ab017c3dbf1c9143b256ff428a (diff)
Fix sending websocket messages (#9948)
Diffstat (limited to 'MediaBrowser.Controller/Net')
-rw-r--r--MediaBrowser.Controller/Net/BasePeriodicWebSocketListener.cs1
-rw-r--r--MediaBrowser.Controller/Net/IWebSocketConnection.cs12
-rw-r--r--MediaBrowser.Controller/Net/WebSocketMessageInfo.cs4
-rw-r--r--MediaBrowser.Controller/Net/WebSocketMessageOfT.cs5
-rw-r--r--MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessage.cs2
-rw-r--r--MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessageOfT.cs2
6 files changed, 18 insertions, 8 deletions
diff --git a/MediaBrowser.Controller/Net/BasePeriodicWebSocketListener.cs b/MediaBrowser.Controller/Net/BasePeriodicWebSocketListener.cs
index a07d9b3eb..8f38d4976 100644
--- a/MediaBrowser.Controller/Net/BasePeriodicWebSocketListener.cs
+++ b/MediaBrowser.Controller/Net/BasePeriodicWebSocketListener.cs
@@ -171,7 +171,6 @@ namespace MediaBrowser.Controller.Net
await connection.SendAsync(
new OutboundWebSocketMessage<TReturnDataType>
{
- MessageId = Guid.NewGuid(),
MessageType = Type,
Data = data
},
diff --git a/MediaBrowser.Controller/Net/IWebSocketConnection.cs b/MediaBrowser.Controller/Net/IWebSocketConnection.cs
index 04b333230..79f0846b4 100644
--- a/MediaBrowser.Controller/Net/IWebSocketConnection.cs
+++ b/MediaBrowser.Controller/Net/IWebSocketConnection.cs
@@ -5,6 +5,7 @@ using System.Net;
using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;
+using MediaBrowser.Controller.Net.WebSocketMessages;
namespace MediaBrowser.Controller.Net
{
@@ -48,12 +49,21 @@ namespace MediaBrowser.Controller.Net
/// <summary>
/// Sends a message asynchronously.
/// </summary>
+ /// <param name="message">The message.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task.</returns>
+ /// <exception cref="ArgumentNullException">The message is null.</exception>
+ Task SendAsync(OutboundWebSocketMessage message, CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Sends a message asynchronously.
+ /// </summary>
/// <typeparam name="T">The type of websocket message data.</typeparam>
/// <param name="message">The message.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
/// <exception cref="ArgumentNullException">The message is null.</exception>
- Task SendAsync<T>(WebSocketMessage<T> message, CancellationToken cancellationToken);
+ Task SendAsync<T>(OutboundWebSocketMessage<T> message, CancellationToken cancellationToken);
Task ProcessAsync(CancellationToken cancellationToken = default);
}
diff --git a/MediaBrowser.Controller/Net/WebSocketMessageInfo.cs b/MediaBrowser.Controller/Net/WebSocketMessageInfo.cs
index 2d986b7b3..f7a9ccc44 100644
--- a/MediaBrowser.Controller/Net/WebSocketMessageInfo.cs
+++ b/MediaBrowser.Controller/Net/WebSocketMessageInfo.cs
@@ -1,11 +1,13 @@
#nullable disable
+using MediaBrowser.Controller.Net.WebSocketMessages;
+
namespace MediaBrowser.Controller.Net
{
/// <summary>
/// Class WebSocketMessageInfo.
/// </summary>
- public class WebSocketMessageInfo : WebSocketMessage<string>
+ public class WebSocketMessageInfo : InboundWebSocketMessage<string>
{
/// <summary>
/// Gets or sets the connection.
diff --git a/MediaBrowser.Controller/Net/WebSocketMessageOfT.cs b/MediaBrowser.Controller/Net/WebSocketMessageOfT.cs
index 7c35c8010..11e5a6bb2 100644
--- a/MediaBrowser.Controller/Net/WebSocketMessageOfT.cs
+++ b/MediaBrowser.Controller/Net/WebSocketMessageOfT.cs
@@ -6,13 +6,12 @@ namespace MediaBrowser.Controller.Net;
/// Class WebSocketMessage.
/// </summary>
/// <typeparam name="T">The type of the data.</typeparam>
-// TODO make this abstract, remove empty ctor.
-public class WebSocketMessage<T> : WebSocketMessage
+public abstract class WebSocketMessage<T> : WebSocketMessage
{
/// <summary>
/// Initializes a new instance of the <see cref="WebSocketMessage{T}"/> class.
/// </summary>
- public WebSocketMessage()
+ protected WebSocketMessage()
{
}
diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessage.cs b/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessage.cs
index ad97796e7..178245851 100644
--- a/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessage.cs
+++ b/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessage.cs
@@ -10,5 +10,5 @@ public class OutboundWebSocketMessage : WebSocketMessage, IOutboundWebSocketMess
/// <summary>
/// Gets or sets the message id.
/// </summary>
- public Guid MessageId { get; set; }
+ public Guid MessageId { get; set; } = Guid.NewGuid();
}
diff --git a/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessageOfT.cs b/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessageOfT.cs
index f09f294b4..cce331805 100644
--- a/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessageOfT.cs
+++ b/MediaBrowser.Controller/Net/WebSocketMessages/OutboundWebSocketMessageOfT.cs
@@ -29,5 +29,5 @@ public class OutboundWebSocketMessage<T> : WebSocketMessage<T>, IOutboundWebSock
/// <summary>
/// Gets or sets the message id.
/// </summary>
- public Guid MessageId { get; set; }
+ public Guid MessageId { get; set; } = Guid.NewGuid();
}