From 52252fcd554a7ac1105374ca6d1b440787820f0a Mon Sep 17 00:00:00 2001 From: Cody Robibero Date: Sun, 2 Jul 2023 16:14:44 -0600 Subject: Fix sending websocket messages (#9948) --- .../HttpServer/WebSocketConnection.cs | 32 ++++++---------------- 1 file changed, 9 insertions(+), 23 deletions(-) (limited to 'Emby.Server.Implementations/HttpServer/WebSocketConnection.cs') diff --git a/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs b/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs index af79c18c4..fd7653a32 100644 --- a/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs +++ b/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs @@ -10,6 +10,7 @@ using System.Threading.Tasks; using Jellyfin.Extensions.Json; using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Net.WebSocketMessages; +using MediaBrowser.Controller.Net.WebSocketMessages.Outbound; using MediaBrowser.Model.Session; using Microsoft.Extensions.Logging; @@ -85,26 +86,15 @@ namespace Emby.Server.Implementations.HttpServer /// The state. public WebSocketState State => _socket.State; - /// - /// Sends a message asynchronously. - /// - /// The message. - /// The cancellation token. - /// Task. - public Task SendAsync(WebSocketMessage message, CancellationToken cancellationToken) + /// + public Task SendAsync(OutboundWebSocketMessage message, CancellationToken cancellationToken) { var json = JsonSerializer.SerializeToUtf8Bytes(message, _jsonOptions); return _socket.SendAsync(json, WebSocketMessageType.Text, true, cancellationToken); } - /// - /// Sends a message asynchronously. - /// - /// The type of the message. - /// The message. - /// The cancellation token. - /// Task. - public Task SendAsync(WebSocketMessage message, CancellationToken cancellationToken) + /// + public Task SendAsync(OutboundWebSocketMessage message, CancellationToken cancellationToken) { var json = JsonSerializer.SerializeToUtf8Bytes(message, _jsonOptions); return _socket.SendAsync(json, WebSocketMessageType.Text, true, cancellationToken); @@ -183,7 +173,7 @@ namespace Emby.Server.Implementations.HttpServer return; } - WebSocketMessage? stub; + InboundWebSocketMessage? stub; long bytesConsumed; try { @@ -224,10 +214,10 @@ namespace Emby.Server.Implementations.HttpServer } } - internal WebSocketMessage? DeserializeWebSocketMessage(ReadOnlySequence bytes, out long bytesConsumed) + internal InboundWebSocketMessage? DeserializeWebSocketMessage(ReadOnlySequence bytes, out long bytesConsumed) { var jsonReader = new Utf8JsonReader(bytes); - var ret = JsonSerializer.Deserialize>(ref jsonReader, _jsonOptions); + var ret = JsonSerializer.Deserialize>(ref jsonReader, _jsonOptions); bytesConsumed = jsonReader.BytesConsumed; return ret; } @@ -236,11 +226,7 @@ namespace Emby.Server.Implementations.HttpServer { LastKeepAliveDate = DateTime.UtcNow; return SendAsync( - new OutboundWebSocketMessage - { - MessageId = Guid.NewGuid(), - MessageType = SessionMessageType.KeepAlive - }, + new OutboundKeepAliveMessage(), CancellationToken.None); } -- cgit v1.2.3