一转眼秋天来了。在过去的两个月中我们为迎接这一收获的季节做足了功课。继推出开源的聊天 UI 套件 ChatKit 后,我们又为开发者们打造出视频直播 UI 套件 LiveKit,从而大幅降低了 iOS 和 Android 平台的应用接入直播的技术门槛和成本。它也是开源项目,所以欢迎大家围观并参与维护。
与之相关的是,我们基于自身的聊天服务与 WebRTC 标准推出了 JavaScript WebRTC 插件,它可以实现 Web 端一对一的视频聊天。与 LiveKit 直播的单向、文本聊天不同,WebRTC 可以实现双向的文本和语音交流,只是不能像直播那样进行一对多点的视频流,而且目前仅支持 Web 端使用。
随着云引擎功能的丰富和用户的增多,我们用 Go 语言重写出功能更强大的 命令行工具 CLI 来更好地支持和优化云引擎应用在本地的启动、调试与部署过程。新版 CLI 已编译为可执行文件,无需安装 Node.js 即可使用。目前处于公测阶段,欢迎大家 通过 Github 提供反馈。
网站方面,为配合我们从 9 月 1 日开始实行的 预充值 + 按天扣费 的服务政策,控制台也做了必要的调整与优化,例如短信余额合并入账户余额,账务概况中仅显示一个账户余额,便于用户判断;用户可设定 账户余额报警 以便在余额不足时能及时收到短信和邮件提醒,避免发生欠费停服的状况。
SDK 方面,Swift SDK 已支持 Swift 3 规范;JavaScript 存储 SDK 发布了大版本升级—— 2.0beta,并整合了 JavaScript 统计 SDK;PHP SDK 发布了 0.4.0 版,支持云引擎并更新了类名。
此外,我们重新设计了 文档站点的首页 ,希望新的版式能够帮助读者更容易地找到自己想要的内容。
网站
- 账务概况中,短信余额合并入账户余额。
- 完善账单明细,改进消费明细的筛选条件。
- 账号设置中,增加 域名备案 和 域名绑定 功能,实现资料在线提交,免去了邮件传递资料的繁琐过程。
- 未验证邮箱的账号在修改邮箱和密码时不再校验密码。
- 实时消息日志去掉选项限制。
- 优化短信界面。
- 短信设置中,为模板列表增加签名显示和审核时间提示。
- 数据表格支持 null 显示和编辑。
- 改进 API 日志 UI。
- 文件上传进度显示。
- 控制台图片增加预览。
存储
- 开放内置字段的隐藏设定,修复应用内社交中 user 绑定在隐藏 authData 下存在的问题。
- 修复
_User
表的 authData 字段多余的 null 更新。 - 修复应用内搜索 skip 存在的问题。
- 加强 where 条件检测。
- CQL 加入慢查询分析。
- 手机号登录尊重登录选项。
users/me
API 接口尊重隐藏列设置。- 增加刷新用户 sessionToken 的 API
refreshSessionToken
。 - 应用内社交模块:增加删除收件箱中的消息的 API 说明。
- 修复开发者账户修改密码没有强制已有登录失效的问题。
- 改进 Relation 查询,支持
containsIn
条件。 - 修复导出服务导出 Relation 类型数据有误的问题。
- 将控制台批量删除记录加入 access log 记录。
聊天、推送和短信
- 改善获取对话最新消息的可靠性。
- 修复推送完成时间错误的问题。
- 为小米推送增加定制化声音。
- 推送服务支持 iOS10,新增参数
mutable-content
。 - 改进推送服务整体稳定性:增加消息分批发送机制,完善报警机制,升级推送基本依赖库等。
- iOS ChatKit 支持暂态聊天室、自定义默认主题、颜色、气泡边距和聊天背景,支持群定向消息等(更多)。
- Android ChatKit 添加删除 Conversation 缓存,录音时结束播放语音等(更多)。
云引擎
- 修复应用启动时 502 的问题。
- 修复无法判断项目类型的问题。
- 修复
beforeUpdate
Hook 导致更新无效的问题。 - 修复云函数异常响应时 http status 设置有误的问题。
- 当实例资源使用接近上限时向控制台日志打印通知。
- Node.js 云引擎运行时:支持用户指定任意 Node.js 版本;提供基于 Image Layer 的依赖缓存机制。
- Java 云引擎运行时:默认增加 maven mirror,提高依赖下载速度。
- 发布全新的 命令行工具 CLI,功能仍在完善中。
- 支持 logs 日志查看。
- 支持 LeanCache 相关操作。
- 支持统计、env 子命令。
- 性能优化和其他问题的修复
- 完成 LeanCache 重构和升级,提升其在极端情况下的稳定性。
Objective-C SDK v3.4.4
- 修复一些线程安全问题。
- 修复 AVObject 的某个属性被删除并重新设置后,修改无法保存的问题。
- 修复 S3 文件上传失败的问题。
- 修复 AVInstallation 保存时偶尔崩溃的问题。
- 修复网络请求导致的内存泄露问题。
- 修复聊天首次拉取历史消息时部分消息丢失的问题。
- 修复聊天一处异常崩溃的问题。
- 修复聊天头文件循环依赖的问题。
- 修复暂态消息发送后被缓存的问题。
- 消息缓存的内部改进。
Swift SDK v1.4.0
- 全面支持 Swift 3 语法和规范。
- 改进数据类型的设计,允许用户使用原生类型。
- 修复通过
init?(JSONValue: AnyObject?)
创建的日期不正确的问题。 - 修复在 ARM 系统上使用了未声明类型 Float80 的问题。
- 更改了两个地理位置查询的约束名称:
NearbyPointWithRange
重命名为LocatedNear
,NearbyPointWithRectangle
为LocatedWithin
。 - 废弃
NearbyPoint
,使用LocatedNear
来替换。 - 为所有 LeanCloud 数据类型增加 JSONValue 和 JSONString 属性以方便类型转换。
- 将 LCType 从 class 变为 protocol,所有 LeanCloud 数据类型都遵守该协议。
Android SDK v3.14.5
- 修复调用 AVQuery 默认构造函数后,查询时会报 NPE 的问题。
- 修复聊天日志输出不完整的问题。
- 修复聊天断网重连后单点登录失效的问题。
- 聊天支持是否自动登录的设置。
- 混合推送升级小米 SDK。
JavaScript SDK
存储 SDK v2.0 beta0
先后经历了 1.4 和 2.0 的两次主要升级。2.0 带来了诸多改进,同时也引入了一些不兼容的改动,具体请参考 变更日志。
- 修复
AV.File#save
方法的onprogress
参数失效的问题。 - 修复应用内社交模块的方法在未登录状态下传入了 sessionToken 仍然抛未登录异常的问题。
- 修复多次调用
AV.Object.extend('ClassName')
后可能导致堆栈溢出的问题。 - 修复
AV.Query#addDescending
没有返回 query 的问题,并且支持链式调用。 - 修复 React Native 0.32 中找不到 react-native 模块的问题。
- 修复
getServerURLPromise
被解析多次的问题。 - 修复 login 采用 POST 的问题。
- 支持 ES2015 的 extends 语法来声明 AV.Object 的子类,增加
AV.Object.register
方法用于注册声明的子类。 - AV.Query 支持查询 AV.File。
- 增加
option.useMasterKey
参数指定本次操作是否要使用 masterKey,该选项会忽略全局的 useMasterKey 设置。 - 增加
AV.User#getRoles()
方法。
聊天 SDK v3.2.3
- 修复在同一页面中登出 IMClient 后无法再登录的问题
- 修复未读消息事件中
payload.lastMessageTimestamp
值为无效时间的问题。 - 修复未读消息被标记为已读时有可能会漏掉消息的问题。
- IMClient: 修复用户有可能移除内部事件导致 client 无法正常 close 的问题。
- 增加
Conversation#get
、Conversation#set
方法。 - 与对话的自定义属性相关的 API 变动:废弃 Conversation 的 attributes 属性,以及
setAttribute
、setAttributes
、setName
方法,直接使用 options[属性名] 为对话增加自定义属性。详情说明与迁移指南请参考《新的 Conversation 自定义属性 API》。 - 修复
Conversation#setAttribute
会删除 attr 列中其他字段的错误行为。 - 实现 消息送达回执;为消息增加新的属性:送达时间
deliveredAt
、状态status
。 - 减少了客户端断线重连的开销,为 IMClient 增加 disconnect、schedule、retry、 reconnect 和 reconnecterror 的网络状态事件。
Python SDK v1.6.5
- 修复
Object._deep_save
更新已保存对象时因 objectId 缺失而出错的问题。 - 修复
Object#get()
不能获取 objectId、createdAt、updatedAt 属性的问题。 - 修复 Python3 下云引擎 SDK CORS 中间件的编码错误。
- 修复云引擎 Hook
on_login
、on_verified
失败的问题。 - 云引擎 Hook 函数增加对 sign 的校验。
- 增加
User#get_roles()
方法。 - 重命名
leancloud.Engine#on_bigquery
为leancloud.Engine#on_insight
。 - 废弃
leancloud.Query.does_not_exists
方法,增加leancloud.Query.does_not_exist
方法来代替。 - 小幅调整目录结构,方便生成 API 文档。
PHP SDK v0.4.0
- 主要类型名称去掉「Lean」前缀,与其他语言 SDK 保持一致。
- 增加 短信发送接口。
- 增加聊天相关的云引擎 Hook(文档)及校验。
技术文档
- 新增 在微信小程序中使用 LeanCloud 服务。
- 重构数据模型设计指南:Android、Objective-C、JavaScript、Python。
- 重构 云引擎 Node.js 网站托管指南。
- 应用内社交模块:增加删除收件箱中的消息的 API 说明。
- 云引擎 Node.js:使用多核处理模块 Cluster 配置 Node.js 多线程运行模式,充分利用 2CPU 或以上的云引擎实例。
- LeanCache:在本地调试依赖 LeanCache 的应用。
- 存储 Java SDK:增加推送消息使用说明。
- 推送:支持 Cordova。
- 聊天 Android SDK:增加 自动登录 说明,决定应用重启后是否自动重连聊天服务。
- 聊天 JavaScript SDK:新增 插件 说明和 WebRTC 插件使用指南(实现 Web 端点对点实时音视频通话功能)。
- 推送 Android SDK:区分透传和通知栏消息。