LeanCloud 三月新变化

产品动态

存储和即时通讯 Flutter SDK 全新发布

二月我们发布了存储服务的 Flutter SDK,本月即时通讯服务的 Flutter SDK(beta 版)也正式与大家见面。为了更好利用 OS 层的能力,新 Flutter SDK 以插件(Plugin)的形式开发,底层依赖原生的 Swift SDKJava Unified SDK,且大部分接口的名称与 Native SDK 保持了一致。

当前版本已经支持如下功能:

  • 单聊、群聊、富媒体消息、自定义消息类型;
  • 自定义会话属性、会话查询、聊天记录查询;
  • 聊天室、临时会话、系统会话等不同对话类型;
  • 消息的修改与撤回、消息回执、成员提醒、暂态消息、遗愿消息;
  • 消息免打扰、未读消息数更新通知;
  • 多端登录与单设备登录;
  • 登录以及会话的安全签名,等等。

另外,我们也提供了简要的安装使用文档以及详细的 API 文档供开发者参考。

安卓混合推送全面升级

三月份我们全面升级了混合推送的第三方依赖,以修复底层库的 bug,和支持厂商的新功能与接口。最新版本混合推送的底层依赖如下:

  • 华为:'4.0.2.300'
  • 小米:'3.7.5'
  • Oppo:'2.0.2'
  • Vivo:'2.9.0.0'

我们同时也更新了文档和 demo,欢迎大家尽快升级体验。

文档的新变化

上个月我们对文档做了几点改进:

REST API 文档的国际化基本完成,除了常用的存储、云引擎、即时通讯功能之外,我们还加入了搜索和短信的文档内容,相信能给英文环境的开发者带来更便捷的体验;

中文知识库增加了更多常见问题,并且还加入了「产品动态」这一新章节,以方便开发者更好地了解 LeanCloud 的迭代进展,更快地同步信息。

内容推荐

Multipass 旋风教程

如果你打算尝试或者已经尝试基于容器简化本地项目环境配置,但又嫌弃 docker 用起来还是不够直截了当,那么可以试下 multipass。

常见问题

1.【数据存储】如何解决数据一致性或事务需求?

LeanCloud 目前并不提供完整的事务功能,但提供了一些保证数据一致性的特性,可以解决大部分的一致性需求:

  • 在单个对象的一次 save 操作中,对多个字段的更新操作是原子地完成的。
  • 使用 increment(原子计数器)可以原子地更新数字字段。
  • 唯一索引可以保证在一个字段上有同样值的对象只有一个。
  • 有条件更新对象 可以仅在满足某个查询条件时进行更新操作;在这个特性的基础上,你可以自己实现更加复杂的 两阶段提交。
  • 在云引擎上还可以借助 LeanCache 来实现自定义的 排他锁

关于这个话题我们还录制了一期公开课视频:在 LeanCloud 上解决数据一致性问题,其中有对上面这些特性的详细介绍,和解决常见场景的实例教程(包括实现两阶段提交)。

2. 【即时通信】即时通信如何获取在线用户列表以及用户的在线时长?

我们提供了 客户端上下线 Hook,开发者可以利用这两个 Hook 函数,结合云缓存来完成一组客户端实时状态查询的 endpoint。

  • _clientOnline

客户端上线,客户端登录成功后调用。

  • _clientOffline

客户端下线,客户端登出成功或意外下线后调用。

具体实现步骤是通过 Hook 拿到 clientId 的在线状态,将这些状态存储到 LeanCache 中。客户端定期查询云函数来获得用户的在线状态。具体可以参考文档:即时通讯中的在线状态查询。

3. 【推送】离线推送通知服务里,_Installation 是如何与 _User 里的用户 id 关联的?

用户登录即时通信系统以后,服务器会将用户的 client id 保存在登录设备的 _Installation 表的 channels 字段里,从而完成关联。当用户离线,有离线消息需要推送时,服务端会去 _Installation 表内找到 channels 字段包含目标 client id 的设备来完成推送。

4. 【云引擎】如何访问云引擎预备环境中托管的网站?

需要在控制台手动绑定一个 stg- 开头的域名。stg- 开头的自定义域名(例如 stg-web.example.com)会被自动地绑定到预备环境。

更多详情参考:域名绑定指南

更多内容请点击这里

评论

Loading comments ...