Android(Java)如何对接自托管服务端的Parse Live Query
错误根源
你混淆了Parse核心SDK和Live Query客户端的服务地址配置要求:
- 第一个报错
java.net.MalformedURLException: unknown protocol: wss:Parse核心初始化的server参数用于处理普通增删改查、鉴权等常规API请求,仅支持HTTP/HTTPS协议,填入WSS协议地址自然无法识别。 - 替换为HTTPS后报
error: unauthorized:<my_subdomain>.back4app.io是Live Query专属的WebSocket服务域名,不承接普通Parse API请求,用它发送常规接口请求会直接鉴权失败。
正确配置方案
Parse核心初始化保留你之前正常使用的官方通用API地址即可,仅在Live Query客户端初始化时填入WSS协议的子域名地址,两者分开配置互不影响,参考代码如下:
// Back4App的Parse核心初始化,沿用原有正常的HTTPS地址 Parse.initialize(new Parse.Configuration.Builder(this) .applicationId(APPLICATION_ID) .clientKey(CLIENT_KEY) .server("https://parseapi.back4app.com").build() ); // 单独初始化Live Query客户端,这里才用WSS协议的子域名地址 ParseLiveQueryClient parseLiveQueryClient = null; try { parseLiveQueryClient = ParseLiveQueryClient.Factory.getClient(new URI("wss://<my_subdomain>.back4app.io/")); } catch (URISyntaxException e) { e.printStackTrace(); }
配置完成后常规Parse请求和Live Query订阅都可以正常运行,不会再出现协议错误和鉴权失败的问题。
内容的提问来源于stack exchange,提问作者Kat Chen
相关产品推荐
相关产品推荐

