标签归档:realtime

全新设计的 JavaScript 实时通信 SDK 3.0 现已发布!

今天我们高兴地宣布 LeanCloud 下一代 JavaScript 实时通讯 SDK 的 3.0 beta 版本发布了!我们不仅为这一新版本(以下简称 v3)带来了性能提升,还加入了很多令人激动的新功能和改进,包括单点登录、未读消息通知、按条件查询对话、自动更新的对话和消息状态、自定义消息类型、更好的断线重连机制,以及重新设计的 API 等等。

重新设计的 API

在 v3 中我们改进的重点是 SDK 的易用性,为此我们设计了全新的 API。除了一些细小的命名与特性的区别,JavaScript SDK v3 的 API 与其他平台 SDK 的 API 已经统一。随着平台差异性的减少,开发者在为各平台应用设计与实现阶段所投入的工作量也会降低。

相较于 v2,v3 API 对易用性的改进体现在以下几个方面:

  • 自动更新的对话和消息状态
  • Promise 与异常处理
  • 新的事件模型
  • 可扩展的消息类型系统

继续阅读

实时通信云代码集成发布

大家好,我们又发布了一个坳口的功能,实时通信的 云代码集成 。简单地说,现在用户可以通过 自定义云函数 作为 hook,修改实时通信默认的执行流程,增加应用自定义的业务逻辑。

第一阶段我们支持两个 hook:_messageReceived(消息到达服务器)和 _receiversOffline(收件人离线)。

_messageReceived 发生在消息到达服务器,服务器解析完收件人 id 之后,消息存入离线队列之前。这个阶段云函数可以获得的信息包括消息内容、收件人 id 列表、时间戳、发件人等等,用户的云代码可以通过返回值修改消息内容,修改收件人列表甚至直接丢弃消息。这个 hook 可以帮助用户实现自定义的消息处理,甚至实现请求-响应式的模型。

潜在的用例:

  1. 更新数据库,例如记录用户最近发消息时间
  2. 修改消息内容,删除广告,敏感信息(尽管我们已经内置了敏感词过滤)
  3. 修改收件人列表,自动转发消息到他人
  4. 完全颠覆传统实时通信模型,执行服务器端业务逻辑

Screenshot from 2015-01-08 15:09:29

_receiversOffline 发生在消息发送完成后,离线通知触发前。这个阶段云函数可以获得消息内容,离线收件人 id,关联的群组 id 等。用户可以通过云代码返回值指定离线通知的内容,被通知的用户 id,或者直接跳过默认的推送通知(比如在 hook 中触发短信、邮件等其他通知方式)。这个 hook 可以解决之前大家反馈比较多的推送消息不能动态定义的问题。

云代码集成是可选功能,已有的功能不受此次升级影响。关于云代码集成更完整的参数列表和详细说明,请 参考我们的文档

AVOS Cloud 实时通信服务发布:拉近用户间的距离

1070333248_kDaqub

AVOS Cloud 的实时通信服务发布了。您可以 从网站上下载我们的 2.5.9 及以上 SDK 版本(Android 和 iOS)使用这个功能。

什么是实时通信服务? 不同于传统的基于 HTTP 「请求」-「响应」的机制,实时通信的客户端会保持一个到服务器的持久连接,开发者在这条信道上可以实现与服务器的全双工通信。这意味着,发送数据时「连接」的延时可以完全忽略,接收数据时可以使用真正的推模型,不再需要为了获取一次数据而发送额外的请求。

实时通信服务的来历。 今年第一季度,我们改造了 AVOS Cloud 的推送,实际上从那时起我们已经在使用自己研发的持久连接技术实现推送了。推送是一种单向的通信,手机客户端只接收数据。这次发布的实时通信功能,就是在推送的持久连接上,增加了数据的上行通道。如果你使用的是 Android 平台,我们的推送和实时通信可以共用同一个持久连接,减少额外的开销。

实时通信能用来做什么? 说到实时,最先想到的就是聊天工具。利用全双工的通信通道,你可以轻松实现设备间的低延迟对话。我们的第一个用户 百姓网 ,就是利用这套基础服务实现了他们的实时私信功能。此外,你也可以利用两台设备间的实时连接,实现远程的对战游戏,比如像 QuizUp 这样的实时猜迷竞赛。实时的体验可以使用户间的互动更加流畅,无形中拉近了用户间的距离。

它的 API 怎样? 我们这次发布的是一套完全底层的 API,它的目标是帮助用户解决几个根本问题:

  • 点对点收发数据
  • 上下线通知
  • 权限认证

在设计 API 时,我们考虑到自己的 SDK 做的越多,对用户应用的侵入越大,用户能做的就越少。High-level 的 API 用起来固然快速,但往往限制了你创造的空间和思路。在移动互联网瞬息万变的时代,一套轻装上阵,简单易于理解的 API 相信更贴近你的应用,也免去了你费力 hack,转换内部概念的功夫。从平台的角度,我们也有信心把最底层的 API 暴露出来,接受不同使用场景的考验。

另外,和推送、统计服务一样,AVOS Cloud 的实时通信服务并不强制要求用户使用我们的核心存储功能。任何的应用都可以接入实时通信服务,权限认证由开发者的接口或云代码上的服务端程序完成,通过签名的形式与实时通信服务确认。

实时通信服务如何收费? 当前的价格请查看 价格页面

开始使用:

PS: 7 月 18 日我们将在 InfoQ Archsummit 2014 大会 上分享 我们构建实时云服务的经验和心得 ,欢迎关注。

编辑:修正 SDK 版本号。