diff --git a/ParseLiveQuery.Test/ParseLiveQuery.Test.csproj b/ParseLiveQuery.Test/ParseLiveQuery.Test.csproj old mode 100644 new mode 100755 diff --git a/ParseLiveQuery.Test/ParseLiveQueryClientTest.cs b/ParseLiveQuery.Test/ParseLiveQueryClientTest.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery.Test/Properties/AssemblyInfo.cs b/ParseLiveQuery.Test/Properties/AssemblyInfo.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery.Test/packages.config b/ParseLiveQuery.Test/packages.config old mode 100644 new mode 100755 diff --git a/ParseLiveQuery.sln b/ParseLiveQuery.sln old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/IParseLiveQueryClientCallbacks.cs b/ParseLiveQuery/IParseLiveQueryClientCallbacks.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/ISubscriptionFactory.cs b/ParseLiveQuery/ISubscriptionFactory.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/ITaskQueue.cs b/ParseLiveQuery/ITaskQueue.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/IWebSocketClient.cs b/ParseLiveQuery/IWebSocketClient.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/IWebSocketClientCallback.cs b/ParseLiveQuery/IWebSocketClientCallback.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/LiveQueryException.cs b/ParseLiveQuery/LiveQueryException.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/Operation/ConnectClientOperation.cs b/ParseLiveQuery/Operation/ConnectClientOperation.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/Operation/IClientOperation.cs b/ParseLiveQuery/Operation/IClientOperation.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/Operation/SessionClientOperation.cs b/ParseLiveQuery/Operation/SessionClientOperation.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/Operation/SubscribeClientOperation.cs b/ParseLiveQuery/Operation/SubscribeClientOperation.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/Operation/UnsubscribeClientOperation.cs b/ParseLiveQuery/Operation/UnsubscribeClientOperation.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/ParseLiveQuery.csproj b/ParseLiveQuery/ParseLiveQuery.csproj index 65f51a7..4a71fce 100644 --- a/ParseLiveQuery/ParseLiveQuery.csproj +++ b/ParseLiveQuery/ParseLiveQuery.csproj @@ -7,8 +7,11 @@ - - + + ..\..\Parse-SDK-dotNET-master\Parse\bin\Debug\netstandard2.0\Parse.dll + + + ..\..\WebSocketSharp-netstandard.1.0.1\lib\netstandard2.0\websocket-sharp.dll + - diff --git a/ParseLiveQuery/ParseLiveQueryClient.cs b/ParseLiveQuery/ParseLiveQueryClient.cs old mode 100644 new mode 100755 index 6e3e4c1..6c2c9b2 --- a/ParseLiveQuery/ParseLiveQueryClient.cs +++ b/ParseLiveQuery/ParseLiveQueryClient.cs @@ -37,7 +37,7 @@ public ParseLiveQueryClient(Uri hostUri, WebSocketClientFactory webSocketClientF internal ParseLiveQueryClient(Uri hostUri, WebSocketClientFactory webSocketClientFactory, ISubscriptionFactory subscriptionFactory, ITaskQueue taskQueue) { _hostUri = hostUri; - _applicationId = ParseClient.CurrentConfiguration.ApplicationId; + _applicationId = ParseClient.CurrentConfiguration.ApplicationID; _webSocketClientFactory = webSocketClientFactory; _webSocketClientCallback = new WebSocketClientCallback(this); _subscriptionFactory = subscriptionFactory; @@ -45,7 +45,7 @@ internal ParseLiveQueryClient(Uri hostUri, WebSocketClientFactory webSocketClien } private static Uri GetDefaultUri() { - string server = ParseClient.CurrentConfiguration.Server; + string server = ParseClient.CurrentConfiguration.ServerURI; if (server == null) throw new InvalidOperationException("Missing default Server URI in CurrentConfiguration"); Uri serverUri = new Uri(server); @@ -83,20 +83,34 @@ public void ConnectIfNeeded() { public void Unsubscribe(ParseQuery query) where T : ParseObject { if (query == null) return; - foreach (Subscription sub in _subscriptions.Values) { + var requestIds = new List(); + foreach (int requestId in _subscriptions.Keys) { + var sub = _subscriptions[requestId]; if (query.Equals(sub.QueryObj)) { SendUnsubscription((Subscription) sub); + requestIds.Add(requestId); } } + Subscription dummy = null; + foreach (int requestId in requestIds) { + _subscriptions.TryRemove(requestId, out dummy); + } } public void Unsubscribe(ParseQuery query, Subscription subscription) where T : ParseObject { if (query == null || subscription == null) return; - foreach (Subscription sub in _subscriptions.Values) { + var requestIds = new List(); + foreach (int requestId in _subscriptions.Keys) { + var sub = _subscriptions[requestId]; if (query.Equals(sub.QueryObj) && subscription.Equals(sub)) { SendUnsubscription(subscription); + requestIds.Add(requestId); } } + Subscription dummy = null; + foreach (int requestId in requestIds) { + _subscriptions.TryRemove(requestId, out dummy); + } } public void Reconnect() { diff --git a/ParseLiveQuery/Properties/AssemblyInfo.cs b/ParseLiveQuery/Properties/AssemblyInfo.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/Subscription.cs b/ParseLiveQuery/Subscription.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/WebSocketClientFactory.cs b/ParseLiveQuery/WebSocketClientFactory.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/WebSocketClientState.cs b/ParseLiveQuery/WebSocketClientState.cs old mode 100644 new mode 100755 diff --git a/ParseLiveQuery/WebSocketSharpClientFactory.cs b/ParseLiveQuery/WebSocketSharpClientFactory.cs old mode 100644 new mode 100755