Skip to content

Commit db767c0

Browse files
committed
Get ws URI directly from server URL
1 parent f6e5c4d commit db767c0

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

ParseLiveQuery/src/main/java/com/parse/ParseLiveQueryClient.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ public interface ParseLiveQueryClient {
1717

1818
class Factory {
1919

20+
public static ParseLiveQueryClient getClient() {
21+
return new ParseLiveQueryClientImpl();
22+
}
23+
2024
public static ParseLiveQueryClient getClient(URI uri) {
2125
return new ParseLiveQueryClientImpl(uri);
2226
}

ParseLiveQuery/src/main/java/com/parse/ParseLiveQueryClientImpl.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import org.json.JSONObject;
88

99
import java.net.URI;
10+
import java.net.URISyntaxException;
11+
import java.net.URL;
1012
import java.util.concurrent.Callable;
1113
import java.util.concurrent.Executor;
1214

@@ -23,14 +25,37 @@
2325
private final String applicationId;
2426
private final String clientKey;
2527
private final SparseArray<Subscription<? extends ParseObject>> subscriptions = new SparseArray<>();
26-
private final URI uri;
28+
private URI uri;
2729
private final WebSocketClientFactory webSocketClientFactory;
2830
private final WebSocketClient.WebSocketClientCallback webSocketClientCallback;
2931

3032
private WebSocketClient webSocketClient;
3133
private int requestIdCount = 1;
3234
private boolean userInitiatedDisconnect = false;
3335

36+
/* package */ ParseLiveQueryClientImpl() {
37+
this(null);
38+
URL serverUrl = ParseRESTCommand.server;
39+
if (serverUrl == null) {
40+
throw new RuntimeException("serverUrl is null. "
41+
+ "You must call Parse.initialize(Context)"
42+
+ " before using the Parse LiveQuery library.");
43+
} else {
44+
String url = serverUrl.toString();
45+
if (serverUrl.getProtocol().equals("https")) {
46+
url = url.replaceFirst("https", "wss");
47+
} else {
48+
url = url.replaceFirst("http", "ws");
49+
}
50+
try {
51+
this.uri = new URI(url);
52+
} catch (URISyntaxException e) {
53+
e.printStackTrace();
54+
throw new RuntimeException(e.getMessage());
55+
}
56+
}
57+
}
58+
3459
/* package */ ParseLiveQueryClientImpl(URI uri) {
3560
this(uri, new TubeSockWebSocketClient.TubeWebSocketClientFactory(), Task.BACKGROUND_EXECUTOR);
3661
}

0 commit comments

Comments
 (0)