Flutter对接自托管Parse Server的LiveQuery配置失败问题咨询
LiveQuery URL格式说明
你猜测的格式逻辑是正确的,具体可对照以下规则确认:
- 未开启SSL的HTTP部署用
ws前缀,开启HTTPS部署用wss前缀 - 完整格式为
ws://<你的服务器IP/域名>:<监听端口>/<parse挂载路径>:
如果你在ParseServer初始化时设置的mountPath为/appname,则填写ws://myIP:1337/appname即可;如果用的是默认挂载路径,对应地址为ws://myIP:1337/parse,末尾加不加斜杠不影响连通性。
配置不生效的常见排查方案
你贴出的服务端代码逻辑没有语法错误,可按以下顺序排查问题:
补全ParseServer必填参数
在new ParseServer({...})配置段中,和liveQuery平级的位置添加publicServerURL参数,示例如下:var api = new ParseServer({ // 原有其他配置:appId、masterKey、serverURL、mountPath等 publicServerURL: 'http://<你的实际IP/域名>:1337/<挂载路径>', liveQuery: { classNames: ["Test"] } });该参数是LiveQuery服务正常运行的必填配置,不要填写
127.0.0.1或localhost,要填客户端能正常访问的公网/局域网IP。检查端口连通性
确认服务器防火墙、云服务商安全组已放行你监听的1337端口,同时放通TCP和WebSocket协议的访问权限。你可以用wscat工具本地测试服务端连通性,命令为:wscat -c ws://<你的IP>:1337/<挂载路径>若能正常连接说明服务端配置无误,问题出在客户端配置;若连接失败继续排查服务端问题。
确认类名匹配规则
你配置的支持LiveQuery的类为Test,需保证Parse后台存在对应类,且客户端订阅时的类名大小写和配置完全一致,Parse对类名大小写敏感。反向代理特殊配置(如有)
如果你用Nginx等反向代理工具转发Parse服务请求,需要额外添加WebSocket支持配置,在对应location段中添加以下参数:proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";客户端配置校验
Flutter端初始化ParseSDK时,liveQueryUrl参数需和服务端配置完全一致,不要混用http/https和ws/wss前缀。
内容的提问来源于stack exchange,提问作者Adrian Zalewski
相关产品推荐
相关产品推荐

