自动更新的对话和消息状态Promise,首届环信编程大赛

摘要即时通讯云 LeanCloud 下一代 JavaScript 即时通讯 SDK 的 3.0 beta
版本发布了!以下为来自即时通讯云 LeanCloud官方的消息:今天我们高兴地宣布
LeanCloud 下一代 JavaScript 实时通讯 SDK 的 3.0 beta
版本发布了!我们不仅为这一新版本(以下简称
v3)带来了性能提升,还加入了很多令人激动的新功能和改进,包括单点登录、未读消息通知、按条件查询对话、自动更新的对话和消息状态、自定义消息类型、更好的断线重连机制,以及重新设计的
API 等等。重新设计的 API在 v3 中我们改进的重点是 SDK
的易用性,为此我们设计了全新的
API。除了一些细小的命名与特性的区别,JavaScript SDK v3 的 API 与其他平台
SDK 的 API
已经统一。随着平台差异性的减少,开发者在为各平台应用设计与实现阶段所投入的工作量也会降低。相较于
v2,v3 API
对易用性的改进体现在以下几个方面:自动更新的对话和消息状态Promise
与异常处理新的事件模型可扩展的消息类型系统自动更新的状态v2
中封装了各种操作指令与事件,但是在真实的项目中,你仍然需要额外维护一些状态,这些状态包括了:对话:成员列表、未读消息数、最后消息时间、最后消息(如果有)消息:发送状态v3
中这些状态都会由 SDK
自动更新。这将大大简化业务逻辑的代码,比如当你使用类 MV*
框架时,你可以直接将这些实例与 View 层绑定,就像下面这个使用 Angular
展示消息列表的例子一样:<ul class=”list-group”> <li
class=”list-group-item” ng-repeat=”conversation in conversations”>
<span class=”badge”>{{conversation.unreadMessagesCount}}Live
demo:
与异常处理所有的异步 API 将返回 Promise 实例。相比于 v2
中回调的方式,Promise 将会避免回调嵌套过深的问题,同时解决了 v2
异步操作异常被 SDK 隐藏的问题。// 使用 Promise
以链式方法登录、创建会话、发送消息realtime
.createIMClient(‘three-bodies’) .then(tom => tom.createConversation({
member: [‘the-earth’] })) .then(conversation =>
conversation.send(new TextMessage(‘不要回答!’)) .then(message => {
/* 成功 */ }) .catch(error => { /* 处理异常 */ });新的事件模型v3
中的事件 API 使用的依然是 Node.js 中EventEmitter的设计。与 v2
中所有事件都在RealtimeObject上派发不同,v3
中不同类型的事件会在不同的层面派发:网络状态相关的事件在Realtime实例上派发。某个客户端相关的事件在该IMClient实例上派发。某个对话相关的事件在该Conversation实例上派发,同时也会在其隶属的IMClient实例上派发。详细的事件列表与描述,请参阅API
文档的 Events
部分。可扩展的消息类型系统自定义一个消息类型从来没有像现在这么简单:@AV.messageType(3)@AV.messageField(‘foo’)class
CustomMessage extends AV.TypedMessage { constructor(foo) { super();
this.foo = foo; }}Live
demo:
TypeScript 或者 Babel 才能运行。这里还有个ES5 的例子。同时,基于
LeanCloud 存储服务,SDK
还提供了常见的富媒体消息类型(文件、图片、视频、音频、位置)。为了避免实时通讯
SDK 与存储 SDK 的耦合,这些富媒体消息类型是一个独立发布的
package,关于富媒体消息的详细内容请参阅《JavaScript 实时通信开发指南 –
富媒体消息》。新增功能JavaScript 的 API 与其他平台 SDK 的 API
的统一意味着以下功能已得到支持:单点登录「未读消息通知」模式对话条件查询构造器(ConversationQuery)断线重连机制SDK
的连接层也被重新设计,断线重连机制变得更加可靠,存在于 v2 中的 crash
与漏报已被消除。除了disconnect与reconnect,v3
中增加了两个新事件schedule与retry,通过它们你就可以了解到 SDK
在断线重连的过程中正在做什么,进而向用户给出更友好的提示。关于断线重连机制的细节请参阅《JavaScript
实时通信开发指南 – 网络状态响应》。性能提升v3
还包含了一些底层上的改进:二进制协议 ProtoBuf
的引入使传输消息时的流量消耗减少了 70%。多个 Client
实例共享一个长连接的措施减少了 SDK 消耗的资源。从 v2 升级v3 API 不兼容
v2。对于正在使用 v2 的用户,尽管 v2 中所有的 API 在 v3
中有对应的实现(参见《JavaScript 实时通信 SDK v3
迁移指南》),我们仍然需要提醒,迁移到 v3
意味着一定的迁移成本。此外,必须指出的是,v3 去掉了对 IE10
及以前版本的支持,如果需要兼容这部分运行环境,请继续使用 v2。在 v3
正式发布后,v2 依然会得到至少 6
个月的安全更新。LeanCloud官网

摘要2019年9 月 17 日,期待已久的微信 7.0.7 for iOS
正式版上线了。1、概述与一周前更新的微信 7.0.7 for Android
内测版相似,此次更新并没有新功能上线,更多是一些细节上的改变。或许是为了与
Android 版本号同步,iOS 版微信的更新跳过了 7.0.6 版本号,从 7.0.5
直接来到了 7.0.7。为了帮助大家更好地了解此次更新情况,我们将微信 7.0.7
for iOS 的新能力,与微信 7.0.5 for iOS
版本进行了对比。目录如下:一、小程序「回到首页」功能强化,权限管理页上线;二、订阅号消息页面中的「未完成的功能」彩蛋下线;三、表情包选择栏改版;四、选择「照片」时的多选图片页与图片编辑页面改版;五、支持停用「微信支付」消息服务。2、小程序「回到首页」功能强化,权限管理页上线本次更新最大的亮点在小程序。点击小程序胶囊按钮中的「…」,你会发现所有功能被分为了三栏:第一栏为小程序的头像、名称,点进去后会跳转到「关于」页面;第二栏为针对小程序本身的操作,包括原本就有的「发送给朋友」、「添加到我的小程序」,以及一个新增的「回到首页」常驻按钮;第三栏为「浮窗」、「设置」、「反馈与投诉」,相当于把「关于」页面中的部分内容一并列在了底部菜单中。过去,只有用户收到朋友转发过来的小程序卡片时,按「…」按钮才会有「返回首页」的功能;本次的改版中,「回到首页」成为一个标配功能,这也让小程序更像是独立的
app,而不仅仅是方便分享和动态更新的「高级 H5 页面」。▲ 小程序菜单栏对比.
左为 7.0.5,右为
7.0.7值得一提的是,在小游戏内,没有「回到首页选项」,第三栏却新增了「成长守护」选项,在点击后将跳转到「未成年人成长守护」页面,家长可以为孩子设置「时间管‌理」、「消‌费管理」、「一键禁玩」等。▲
小游戏「…」中的「成长守护」从这些更新中,我们可以看到一个新的趋势:小程序正在「app
化」,它有了更明确的首页、更独立的权限管理。3、「未完成的功能」彩蛋下线还记得在「订阅号消息」页面,长按订阅号消息会出现「未完成的功能」彩蛋时,我们曾邀请过阿禅、keso
等人猜测一下微信的「彩蛋功能」可能是什么样的。我们把微信的心思猜了个遍,却怎么也没想到这个彩蛋在微信
7.0.7 for iOS
中说下线就下线了,只能说「未完成的功能」是真的完成不了了。▲
订阅号消息页对比. 左为 7.0.5,右为 7.0.74、表情包选择栏改版微信 7.0.7
for iOS 正式版中,表情包选择栏变得更高了,表情包缩略图也加大了。▲
表情包选择栏对比. 左为 7.0.5,右为
7.0.7原本的左右滑动选择同类表情包,变为了上下滑动,左右滑动则成了表情包类型的切换。5、多选图片页与图片编辑页面改版在与好友聊天时选择发送「照片」,或是发布朋友圈时点击「从手机相册选择」,即可进入多选图片页,此次更新中该页也有变化。相比微信
7.0.5 for iOS
版本,整个页面由浅色加深,页面顶部中间新增了一个相册选择按钮,替代了原本左上角的返回键。▲
多选图片页对比. 左为 7.0.5,右为
7.0.7而在选择图片后,依次点击「预览」-「编辑」,也能看到一些小变化:底部图标改变,表情包选择页面变化等。▲
图片编辑页面对比. 左为 7.0.5,中、右为
7.0.76、支持停用「微信支付」消息服务微信支付通知页面右上角原先的「…」变为了代表「设置」的齿轮符号。▲
微信支付页对比. 左为 7.0.5,右为
7.0.7点击齿轮,你可以选择停用微信支付的消息服务,停用该功能的同时会清空历史数据。不过,停用后并不会影响微信支付的日常使用,只是查询账单、联系客服、接收通知等功能就不能再微信支付消息通知中查看了。▲
点击微信支付右上角按钮后的对比. 左为 7.0.5,右为
7.0.7过去,微信支付的通知消息不能关闭,用户每次使用微信支付都会弹出通知。如果用户同时关注了所绑定的银行卡的公众号,还会遇到每一次消费两个公众号同时弹出通知的体验。微信支付推出早期,这样的设定可以让用户更清楚资金流向,减少用户的迷惑和焦虑,但是,当微信支付的应用场景和频次越来越多时,过多的通知也可能是用户的烦恼。这一次,微信把选择的权力交给了用户。除了上述明显的更新,「订阅号消息」页面中的「搜索公众号和工具」也进行了小调整,在微信
7.0.5 for iOS
中,这个搜索框需要下拉页面才会出现,且几个字居中显示;而在微信 7.0.7 for
iOS 中,搜索框固定在了标题栏下方,文字居左。▲ 订阅号消息对比. 左为
7.0.5,右为 7.0.7当然,并不只是在微信 7.0.7 for Android
内测版上做功能的增加,微信 7.0.7 for iOS 仍保留了一些「顽固特色」,比如
Android 上已有多时的小程序评分就还是没有出现。

摘要即时通讯云服务商环信宣布举办首届编程大赛,口号是“让世界感受中国程序员的力量”,参赛时间为2016年3月7日至4月15日。前言环信联合国内专业的技术测评平台猿圈共同推出“首届环信编程大赛”,让世界感受到中国程序员的力量。本次环信编程大赛由线上初赛、决赛、颁奖典礼三个环节组成。其中初赛环节,通过猿圈网站在线测评平台进行编程挑战。决赛环节基于环信sdk开发一款移动端app,比赛结果将以初赛及决赛的综合评分决定。大赛奖品一等奖8000元,二等奖5000元,三等奖2000元决赛前10可获得限量版瑞士军刀背包一个3.前五十可获得定制版精美T-shirt或卫衣还有更多神秘礼品等着大家,比如文件袋,多功能便携工具卡,环信CEO签名编程书籍等。日程安排参赛对象:全国程序员(不限年龄,职业等)比赛时间:3月7日-4月15日初赛方式初赛题目:在猿圈平台上进行在线答题(Android/ios)参赛步骤:在
应用