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