mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-21 09:34:44 +01:00
updated nuget
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Common.Events;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using System;
|
||||
using System.Net.WebSockets;
|
||||
@@ -19,6 +20,8 @@ namespace MediaBrowser.Server.Implementations.HttpServer
|
||||
/// </summary>
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public event EventHandler<EventArgs> Closed;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the web socket.
|
||||
/// </summary>
|
||||
@@ -97,6 +100,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
|
||||
if (bytes == null)
|
||||
{
|
||||
// Connection closed
|
||||
EventHelper.FireEventIfNotNull(Closed, this, EventArgs.Empty, _logger);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
{
|
||||
_services.AddRange(services);
|
||||
|
||||
SetActiveService(_services.FirstOrDefault());
|
||||
SetActiveService(_config.Configuration.LiveTvOptions.ActiveService);
|
||||
}
|
||||
|
||||
private void SetActiveService(string name)
|
||||
{
|
||||
var service = _services.FirstOrDefault(i => string.Equals(i.Name, name, StringComparison.OrdinalIgnoreCase)) ??
|
||||
_services.FirstOrDefault();
|
||||
|
||||
SetActiveService(service);
|
||||
}
|
||||
|
||||
private void SetActiveService(ILiveTvService service)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Common.Events;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using MediaBrowser.Model.Net;
|
||||
using MediaBrowser.Model.Serialization;
|
||||
@@ -14,6 +15,8 @@ namespace MediaBrowser.Server.Implementations.ServerManager
|
||||
/// </summary>
|
||||
public class WebSocketConnection : IWebSocketConnection
|
||||
{
|
||||
public event EventHandler<EventArgs> Closed;
|
||||
|
||||
/// <summary>
|
||||
/// The _socket
|
||||
/// </summary>
|
||||
@@ -96,6 +99,13 @@ namespace MediaBrowser.Server.Implementations.ServerManager
|
||||
_socket.OnReceive = OnReceiveInternal;
|
||||
RemoteEndPoint = remoteEndPoint;
|
||||
_logger = logger;
|
||||
|
||||
socket.Closed += socket_Closed;
|
||||
}
|
||||
|
||||
void socket_Closed(object sender, EventArgs e)
|
||||
{
|
||||
EventHelper.FireEventIfNotNull(Closed, this, EventArgs.Empty, _logger);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -45,6 +45,11 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||
}
|
||||
}
|
||||
|
||||
public bool SupportsMediaControl
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
private Task SendMessage(object obj, CancellationToken cancellationToken)
|
||||
{
|
||||
var json = _json.SerializeToString(obj);
|
||||
|
||||
@@ -1164,7 +1164,7 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||
SupportedCommands = session.SupportedCommands,
|
||||
UserName = session.UserName,
|
||||
NowPlayingItem = session.NowPlayingItem,
|
||||
|
||||
SupportsRemoteControl = session.SupportsMediaControl,
|
||||
PlayState = session.PlayState
|
||||
};
|
||||
|
||||
|
||||
@@ -138,10 +138,10 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||
|
||||
if (controller == null)
|
||||
{
|
||||
controller = new WebSocketController(session, _appHost, _logger);
|
||||
controller = new WebSocketController(session, _appHost, _logger, _sessionManager);
|
||||
}
|
||||
|
||||
controller.Sockets.Add(message.Connection);
|
||||
controller.AddWebSocket(message.Connection);
|
||||
|
||||
session.SessionController = controller;
|
||||
}
|
||||
|
||||
@@ -17,16 +17,19 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||
public class WebSocketController : ISessionController
|
||||
{
|
||||
public SessionInfo Session { get; private set; }
|
||||
public List<IWebSocketConnection> Sockets { get; private set; }
|
||||
public IReadOnlyList<IWebSocketConnection> Sockets { get; private set; }
|
||||
|
||||
private readonly IServerApplicationHost _appHost;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public WebSocketController(SessionInfo session, IServerApplicationHost appHost, ILogger logger)
|
||||
private readonly ISessionManager _sessionManager;
|
||||
|
||||
public WebSocketController(SessionInfo session, IServerApplicationHost appHost, ILogger logger, ISessionManager sessionManager)
|
||||
{
|
||||
Session = session;
|
||||
_appHost = appHost;
|
||||
_logger = logger;
|
||||
_sessionManager = sessionManager;
|
||||
Sockets = new List<IWebSocketConnection>();
|
||||
}
|
||||
|
||||
@@ -38,6 +41,11 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||
}
|
||||
}
|
||||
|
||||
public bool SupportsMediaControl
|
||||
{
|
||||
get { return GetActiveSockets().Any(); }
|
||||
}
|
||||
|
||||
private IEnumerable<IWebSocketConnection> GetActiveSockets()
|
||||
{
|
||||
return Sockets
|
||||
@@ -45,6 +53,28 @@ namespace MediaBrowser.Server.Implementations.Session
|
||||
.Where(i => i.State == WebSocketState.Open);
|
||||
}
|
||||
|
||||
public void AddWebSocket(IWebSocketConnection connection)
|
||||
{
|
||||
var sockets = Sockets.ToList();
|
||||
sockets.Add(connection);
|
||||
|
||||
Sockets = sockets;
|
||||
|
||||
connection.Closed += connection_Closed;
|
||||
}
|
||||
|
||||
void connection_Closed(object sender, EventArgs e)
|
||||
{
|
||||
var capabilities = new SessionCapabilities
|
||||
{
|
||||
PlayableMediaTypes = Session.PlayableMediaTypes,
|
||||
SupportedCommands = Session.SupportedCommands,
|
||||
SupportsMediaControl = SupportsMediaControl
|
||||
};
|
||||
|
||||
_sessionManager.ReportCapabilities(Session.Id, capabilities);
|
||||
}
|
||||
|
||||
private IWebSocketConnection GetActiveSocket()
|
||||
{
|
||||
var socket = GetActiveSockets()
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Alchemy.Classes;
|
||||
using MediaBrowser.Common.Events;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using MediaBrowser.Model.Net;
|
||||
@@ -18,6 +19,8 @@ namespace MediaBrowser.Server.Implementations.WebSocket
|
||||
/// </summary>
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public event EventHandler<EventArgs> Closed;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the web socket.
|
||||
/// </summary>
|
||||
@@ -66,6 +69,8 @@ namespace MediaBrowser.Server.Implementations.WebSocket
|
||||
private void OnDisconnected(UserContext context)
|
||||
{
|
||||
_disconnected = true;
|
||||
|
||||
EventHelper.FireEventIfNotNull(Closed, this, EventArgs.Empty, _logger);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user