最近在使用 LeanCloud 的即时聊天系统的离线消息推送功能时遇到了一些问题,通过自己提交工单和查看已有的相关工单时获得了一些解答,同时也从中发现一些问题。

  1. 离线推送的一些操作和要求是隐式的,其开发者不知道其背后的原理,也没有文档说明。在工单系统中,关于即时聊天离线消息推送的问题非常多。建议完善推送和即时聊天部分的文档,补充章节来详细解释离线消息推送的原理和需要注意的事项。

    • 比如 Installation 中需要 subscribe 对应的 Channel3

      你触发推送的目标用户在 installation 表里当时并没有 subscribe 自己用户名的channel,所以没有找到推送对象
      这个subscribe的关联对象我们会在第一次 session.open 的时候做,你可以每一步操作完后对照数据表看一下有没有异常

    • 比如 iOS 实时通信的推送只能用生产证书6

      后台显示 invalid token,应该是证书类型有问题,你是用生产证书还是开发证书?
      目前我们实时通信的推送只能用生产证书。

  2. 提供某种机制,比如离线消息的 Hook,能够让开发者更加灵活的定义离线消息的行为。一方面可以解决前面第一点中的问题,把目前隐式的操作让开发者自己去做,免去因为信息不全造成的问题。另一方面可以解决 iOS 离线消息推送只能使用静态模版的问题。

  3. 开源 SDK
    目前 LeanCloud 的 iOS 和 Android SDK 不是开源的。JS SDK 因为是机遇 REST API 的,所以开源没有任何问题,不会造成机密的泄露。我相信 iOS 和 Android SDK 的大部分功能也是基于 REST API 的,可能有部分技术上或者机密保护的原因不能直接把代码开源。
    建议在条件允许的情况下开源 iOS 和 Android 等平台的 SDK。一方面开发者可以帮助提高 SDK 质量;另一方面,像上面提到的问题,代码看一眼就知道怎么解决了,同时也缓解了 Support 的压力。

你好,第一点我们会尽力在文档中说明,原本希望 subscribe 这件事对用户透明,所以这方面没有太多说明。关于推送相关的问题我的同时最近在文档里增加了比较详细的说明:https://cn.avoscloud.com/docs/realtime.html#为什么我的-iphone-收不到离线消息推送?

第二点我们很快就会开放自定义hook,已经开发完成,很快就会在生产环境打开,请期待~

关于 SDK 的开源我们也已经有计划,在合适的时间会以合适的方式对专业开发者开放。感谢您的建议。