diff --git a/Assets/Samples/Stream Video & Audio Chat SDK/0.8.20.meta b/Assets/Samples/Stream Video & Audio Chat SDK/0.8.20.meta new file mode 100644 index 00000000..2b364dff --- /dev/null +++ b/Assets/Samples/Stream Video & Audio Chat SDK/0.8.20.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 824737c426eb4344c877fa48581b6894 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/StreamVideo/Runtime/Core/LowLevelClient/WebSockets/BasePersistentWebSocket.cs b/Packages/StreamVideo/Runtime/Core/LowLevelClient/WebSockets/BasePersistentWebSocket.cs index 77e53ae4..9a311b55 100644 --- a/Packages/StreamVideo/Runtime/Core/LowLevelClient/WebSockets/BasePersistentWebSocket.cs +++ b/Packages/StreamVideo/Runtime/Core/LowLevelClient/WebSockets/BasePersistentWebSocket.cs @@ -76,6 +76,14 @@ private void TryToReconnect() return; } + // StreamTODO: revise this. The wrapper state should be perfectly in sync with the inner WebSocket + // Most likely this class should fully rely on WS state and not maintain it's own state + // This check should be handled already by the ConnectionState.IsValidToConnect() above + if (WebsocketClient != null && (WebsocketClient.IsConnecting || WebsocketClient.IsConnected)) + { + return; + } + #if STREAM_DEBUG_ENABLED Logs.Info($"{GetType()} TryToReconnect"); #endif diff --git a/Packages/StreamVideo/Runtime/Libs/Websockets/IWebsocketClient.cs b/Packages/StreamVideo/Runtime/Libs/Websockets/IWebsocketClient.cs index 8b9bd112..a45e9319 100644 --- a/Packages/StreamVideo/Runtime/Libs/Websockets/IWebsocketClient.cs +++ b/Packages/StreamVideo/Runtime/Libs/Websockets/IWebsocketClient.cs @@ -16,6 +16,8 @@ public interface IWebsocketClient : IDisposable int ReceiveQueueCount { get; } int SendQueueCount { get; } + bool IsConnected { get; } + bool IsConnecting { get; } bool TryDequeueMessage(out byte[] message); diff --git a/Packages/StreamVideo/Runtime/Libs/Websockets/NativeWebSocketWrapper.cs b/Packages/StreamVideo/Runtime/Libs/Websockets/NativeWebSocketWrapper.cs index 7878c407..8fd0f274 100644 --- a/Packages/StreamVideo/Runtime/Libs/Websockets/NativeWebSocketWrapper.cs +++ b/Packages/StreamVideo/Runtime/Libs/Websockets/NativeWebSocketWrapper.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Net.WebSockets; -using System.Text; using System.Threading; using System.Threading.Tasks; using NativeWebSocket; @@ -23,6 +22,8 @@ public class NativeWebSocketWrapper : IWebsocketClient public int ReceiveQueueCount => _messages.Count; public int SendQueueCount => throw new NotImplementedException(); + public bool IsConnected => _webSocket.State == WebSocketState.Open; + public bool IsConnecting => _webSocket.State == WebSocketState.Connecting; public NativeWebSocketWrapper(ILogs logs, bool isDebugMode) {