aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Session/SessionWebSocketListener.cs
diff options
context:
space:
mode:
authorgion <oancaionutandrei@gmail.com>2020-05-09 14:34:07 +0200
committergion <oancaionutandrei@gmail.com>2020-05-09 14:34:07 +0200
commit5c8cbd4087261f13d003d7d4eab082cbf335b4d4 (patch)
treeb777fc583e54ea1b4a676cab0ad05bf9df903a1f /Emby.Server.Implementations/Session/SessionWebSocketListener.cs
parent8a6ec2fb713cb77e91d2fceea8b4fce8e7d17395 (diff)
Fix code issues
Diffstat (limited to 'Emby.Server.Implementations/Session/SessionWebSocketListener.cs')
-rw-r--r--Emby.Server.Implementations/Session/SessionWebSocketListener.cs21
1 files changed, 11 insertions, 10 deletions
diff --git a/Emby.Server.Implementations/Session/SessionWebSocketListener.cs b/Emby.Server.Implementations/Session/SessionWebSocketListener.cs
index d1ee22ea8..3704445ab 100644
--- a/Emby.Server.Implementations/Session/SessionWebSocketListener.cs
+++ b/Emby.Server.Implementations/Session/SessionWebSocketListener.cs
@@ -22,17 +22,17 @@ namespace Emby.Server.Implementations.Session
/// <summary>
/// The timeout in seconds after which a WebSocket is considered to be lost.
/// </summary>
- public readonly int WebSocketLostTimeout = 60;
+ public const int WebSocketLostTimeout = 60;
/// <summary>
/// The keep-alive interval factor; controls how often the watcher will check on the status of the WebSockets.
/// </summary>
- public readonly double IntervalFactor = 0.2;
+ public const float IntervalFactor = 0.2f;
/// <summary>
/// The ForceKeepAlive factor; controls when a ForceKeepAlive is sent.
/// </summary>
- public readonly double ForceKeepAliveFactor = 0.75;
+ public const float ForceKeepAliveFactor = 0.75f;
/// <summary>
/// The _session manager
@@ -213,7 +213,7 @@ namespace Emby.Server.Implementations.Session
{
_keepAliveCancellationToken = new CancellationTokenSource();
// Start KeepAlive watcher
- var task = RepeatAsyncCallbackEvery(
+ _ = RepeatAsyncCallbackEvery(
KeepAliveSockets,
TimeSpan.FromSeconds(WebSocketLostTimeout * IntervalFactor),
_keepAliveCancellationToken.Token);
@@ -241,6 +241,7 @@ namespace Emby.Server.Implementations.Session
{
webSocket.Closed -= OnWebSocketClosed;
}
+
_webSockets.Clear();
}
}
@@ -250,8 +251,8 @@ namespace Emby.Server.Implementations.Session
/// </summary>
private async Task KeepAliveSockets()
{
- IEnumerable<IWebSocketConnection> inactive;
- IEnumerable<IWebSocketConnection> lost;
+ List<IWebSocketConnection> inactive;
+ List<IWebSocketConnection> lost;
lock (_webSocketsLock)
{
@@ -261,8 +262,8 @@ namespace Emby.Server.Implementations.Session
{
var elapsed = (DateTime.UtcNow - i.LastKeepAliveDate).TotalSeconds;
return (elapsed > WebSocketLostTimeout * ForceKeepAliveFactor) && (elapsed < WebSocketLostTimeout);
- });
- lost = _webSockets.Where(i => (DateTime.UtcNow - i.LastKeepAliveDate).TotalSeconds >= WebSocketLostTimeout);
+ }).ToList();
+ lost = _webSockets.Where(i => (DateTime.UtcNow - i.LastKeepAliveDate).TotalSeconds >= WebSocketLostTimeout).ToList();
}
if (inactive.Any())
@@ -279,7 +280,7 @@ namespace Emby.Server.Implementations.Session
catch (WebSocketException exception)
{
_logger.LogInformation(exception, "Error sending ForceKeepAlive message to WebSocket.");
- lost = lost.Append(webSocket);
+ lost.Add(webSocket);
}
}
@@ -288,7 +289,7 @@ namespace Emby.Server.Implementations.Session
if (lost.Any())
{
_logger.LogInformation("Lost {0} WebSockets.", lost.Count());
- foreach (var webSocket in lost.ToList())
+ foreach (var webSocket in lost)
{
// TODO: handle session relative to the lost webSocket
RemoveWebSocket(webSocket);