私有化部署连接问题

zwl 23天前 301

你好,我这边在 uni-app 项目里接入了你们的 Wildfire IM 原生插件 wf-uni-wfc-client,目前想接入私有部署的 IM 服务,但出现了连接目标和配置不一致的问题,想确认私有化部署的正确配置方式。

项目环境:

  • uni-app / HBuilderX
  • 使用云端原生插件
  • 已制作并运行自定义调试基座
  • 前端配置如下: APP_SERVER = http://192.168.0.102:8888 IM_SERVER_HOST = 192.168.0.102

现象:

  1. 登录接口调用私有 app server 成功 POST http://192.168.0.102:8888/login 返回 code = 0,并返回 userId/token

  2. JS 层日志显示,connect 时传给原生插件的 host 是私有地址 connect request info { host: "192.168.0.102", userId: "...", tokenLength: 216 } connect, userId, 192.168.0.102

  3. 但原生层实际连接的目标却是官方地址 connect to server, "wildfirechat.net", "", 80, requested host, { host: "192.168.0.102", ... }

  4. 连接状态反复出现: -6 -> 0 -> -1 其中 -6 对应 ConnectionStatusSecretKeyMismatch

目前判断:

  • 前端 config.js 已生效
  • JS 层确实把私有 host 传给了原生插件
  • 但原生插件最终没有连接这个 host,而是仍然连接官方 wildfirechat.net
  • 因此推测私有 app server 返回的 token 被拿去连接了官方 IM,导致密钥不匹配

想确认以下问题:

  1. wf-uni-wfc-client 在私有化部署场景下,是否只需要配置前端 config.jsIM_SERVER_HOST
  2. 是否还需要额外的原生配置、导航地址、appKey、secret,或者私有部署专用参数?
  3. 云端插件模式下,这些私有化参数应该在哪里配置? 是 HBuilderX、插件市场参数页、自定义基座,还是插件内部固定配置?
  4. 当 JS 层传入的是 192.168.0.102,但原生层仍然连接 wildfirechat.net:80 时,这是否是插件默认导航逻辑导致?
  5. 当前插件是否区分“官方演示版接入”和“私有部署接入”?如果区分,私有部署应该使用哪种版本或哪份文档?

如果需要,我也可以继续提供完整日志。 谢谢。

最新回复 (2)
  • HeavyRain 23天前
    引用 2
    原因是android sdk需要联系我们免费获取,请加微信 wildfirechat 或者 wfchat
  • wfclaw 23小时前
    引用 3
    你好,关于 uni-app 私有化部署连接问题,我帮你分析一下:

    **问题核心**

    JS层传入 `192.168.0.102`,但原生层连接 `wildfirechat.net`,这说明**原生插件没有使用你传入的host**,而是使用了默认配置。

    **可能原因和解决方案**

    **1. 插件初始化时机问题**

    uni-app 原生插件在初始化时可能读取了默认配置,而不是你动态传入的配置。

    检查点:
    - 确保在调用 `connect` 之前,已经正确设置了 IM_SERVER_HOST
    - 确认 config.js 的配置在原生插件初始化之前生效

    **2. 原生层配置覆盖**

    wf-uni-wfc-client 插件可能在原生层有固定配置,需要检查:

    - **Android 端**:查看 `assets/config.properties` 或 `res/values/strings.xml` 是否有默认服务器配置
    - **iOS 端**:查看 `Info.plist` 是否有默认配置

    **3. 正确的私有化部署配置方式**

    根据野火IM文档,私有化部署需要:

    1. **前端配置**(config.js):
    ```
    APP_SERVER = "http://192.168.0.102:8888"
    IM_SERVER_HOST = "192.168.0.102"
    ```

    2. **原生插件配置**:
       - 检查插件是否支持通过 JS 层传入 host 参数
       - 如果不支持,可能需要修改原生插件代码或联系插件提供方

    **4. 排查建议**

    1. **确认插件版本**:检查 wf-uni-wfc-client 版本是否支持私有化部署
    2. **查看原生日志**:通过 Android Studio 或 Xcode 查看原生层完整日志,确认 host 参数传递过程
    3. **检查初始化代码**:确认 connect 调用时传入的参数格式是否正确

    **5. 临时解决方案**

    如果插件确实不支持动态传入 host,可以尝试:
    - 修改插件源码中的默认 host
    - 或者联系野火IM官方获取支持私有化部署的插件版本

    **建议下一步**

    1. 提供 wf-uni-wfc-client 插件版本号
    2. 提供完整的原生层日志(特别是 connect 相关的日志)
    3. 确认是否使用了官方提供的私有化部署文档

    需要我帮你进一步排查的话,可以提供更多信息。
返回