Merge pull request #4710 from OancaAndrei/syncplay-fix-session-restore

Restore sessions in SyncPlay groups upon reconnection

(cherry picked from commit a57e465de9)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
pull/4804/head
Claus Vium 4 years ago committed by Joshua M. Boniface
parent 9d4417eee3
commit e70a6d41f4

@ -128,6 +128,9 @@ namespace Emby.Server.Implementations.Session
/// <inheritdoc />
public event EventHandler<SessionEventArgs> SessionActivity;
/// <inheritdoc />
public event EventHandler<SessionEventArgs> SessionControllerConnected;
/// <summary>
/// Gets all connections.
/// </summary>
@ -312,6 +315,19 @@ namespace Emby.Server.Implementations.Session
return session;
}
/// <inheritdoc />
public void OnSessionControllerConnected(SessionInfo info)
{
EventHelper.QueueEventIfNotNull(
SessionControllerConnected,
this,
new SessionEventArgs
{
SessionInfo = info
},
_logger);
}
/// <inheritdoc />
public void CloseIfNeeded(SessionInfo session)
{

@ -133,6 +133,8 @@ namespace Emby.Server.Implementations.Session
var controller = (WebSocketController)controllerInfo.Item1;
controller.AddWebSocket(connection);
_sessionManager.OnSessionControllerConnected(session);
}
/// <summary>

@ -81,7 +81,7 @@ namespace Emby.Server.Implementations.SyncPlay
_sessionManager = sessionManager;
_libraryManager = libraryManager;
_logger = loggerFactory.CreateLogger<SyncPlayManager>();
_sessionManager.SessionStarted += OnSessionManagerSessionStarted;
_sessionManager.SessionControllerConnected += OnSessionControllerConnected;
}
/// <inheritdoc />
@ -329,11 +329,11 @@ namespace Emby.Server.Implementations.SyncPlay
return;
}
_sessionManager.SessionStarted -= OnSessionManagerSessionStarted;
_sessionManager.SessionControllerConnected -= OnSessionControllerConnected;
_disposed = true;
}
private void OnSessionManagerSessionStarted(object sender, SessionEventArgs e)
private void OnSessionControllerConnected(object sender, SessionEventArgs e)
{
var session = e.SessionInfo;

@ -46,6 +46,11 @@ namespace MediaBrowser.Controller.Session
event EventHandler<SessionEventArgs> SessionActivity;
/// <summary>
/// Occurs when [session controller connected].
/// </summary>
event EventHandler<SessionEventArgs> SessionControllerConnected;
/// <summary>
/// Occurs when [capabilities changed].
/// </summary>
@ -78,6 +83,12 @@ namespace MediaBrowser.Controller.Session
/// <param name="user">The user.</param>
SessionInfo LogSessionActivity(string appName, string appVersion, string deviceId, string deviceName, string remoteEndPoint, Jellyfin.Data.Entities.User user);
/// <summary>
/// Used to report that a session controller has connected.
/// </summary>
/// <param name="session">The session.</param>
void OnSessionControllerConnected(SessionInfo session);
void UpdateDeviceName(string sessionId, string reportedDeviceName);
/// <summary>

Loading…
Cancel
Save