VasSonic支持动态缓存页面内容,以及关于环信视频客服的六大应用场景和十大黑科技

摘要邀请参加即时通讯云服务端环信提供的公开课第15期:环信老司机带你开发实时音视频。引言作为客户服务领域的领军企业,环信以Web和APP为载体发布了视频客服产品。基于业界领先的实时音视频通讯技术,为访客及企业客服人员提供双向的实时视频交互能力,支持视频画面展示与回放,语音及文字同步在线畅通交流,画质清晰,低延迟。目前已经大量应用于保险定损、在线教育、商品导购、医疗问诊、远程业务办理、VIP服务等六大场景,消费者可以足不出户便可享受真人面对面VIP服务,帮助企业在提高客户体验的同时极大降低成本和提升客服效率。本次公开课我们将邀请有11年音视频开发经验的环信音视频老司机符宁来解读实时音视频开发有哪些坑?以及关于环信视频客服的六大应用场景和十大黑科技。详情环信简介环信成立于2013年4月,是一家国内领先的企业级软件服务提供商,于2016年荣膺“Gartner
2016 Cool
Vendor”。产品包括国内上线最早规模最大的即时通讯云平台——环信即时通讯云,以及移动端最佳实践的全媒体智能云客服平台——环信移动客服。报名方式点此链接进入报名:

摘要Swift
最新的主要版本提供了针对语言本身以及标准库的大量改动和更新,最重要的变化包括新增的
String 功能、扩展集合、归档和序列化等。Swift
最新的主要版本提供了针对语言本身以及标准库的大量改动和更新,最重要的变化包括新增的
String 功能、扩展集合、归档和序列化等。Swift 4 中,String 已全面遵循
Collection
协议,因此可直接迭代并提供了集合与序列类似的全部条件,例如:for c in
myString { print(c)}myString.filter { c in return boolCheck(c)}let l =
myString.countlet myString2 = myString.dropFirst()此外 String
切片现已成为下标(Substring)类型的实例,遵循 StringProtocol,可按照与
String 类型完全一致的方式使用。这一改动有助于改善切片性能,因为
Substring 已经不再需要复制 String 切片。复制操作可延迟至 Substring
转换为 String 并被某些 API 使用的时候进行。String 的其他功能还包括:支持
Unicode 9 以及多行 Literal。Swift 4
还改进了用户创建、使用和管理集合类型的方式,例如 Dictionary 和
Set。首先,用户现在已经可以通过元祖(Tuple)序列创建字典,并指定如果遇到重复内容后的处理方式,而这一操作可在创建字典或合并两个字典的过程中进行:let
items = [“ItemA”, “ItemB”, “ItemC”, “ItemA”]let prices = [14.40,
41.63, 3.71, 15.63]let catalog1 = Dictionary(uniqueKeysWithValues:
zip(items, prices))let catalog2 = Dictionary(prices, uniquingKeysWith: {
(l, r) in l })let catalog3 = Dictionary(prices, uniquingKeysWith: { (l,
r) in l + r })let merged = catalog.merge(catalog3) { (l, r) in r
}Dictionary 和 Set 现在可以筛选成为原始类型的另一个对象,而不再筛选为
Array。此外字典也已经可以支持新的 mapValues 方法:let catalog4 =
catalog.filter { $0.value < 15.0 }let catalog5 = catalog.mapValues {
$0 * 1.2
}关于字典还有一个实用的改进:在访问其元素时可以指定默认值,这样便可让下标运算符返回
Non-opt 类型:let price1 : Float = catalog[‘none’, default: 0.0]let
price2 : Float? = catalog[‘none’]Swift 4 中所有 Collection
类型均支持泛型下标(Generic subscript)。这意味着我们可以定义下列 JSON
结构,不将索引的结果抛给字典:struct JSON { init(dictionary:
[String:Any]) { … } subscript(key: String) -> T? { … }}let json
= …let result: String? =
json[‘item’]对于该语言还有一个广受好评的改进:对归档和序列化的支持,以前这需要通过
NSObject 和 NSCoding 处理,无法用于 struct 和 enum 类型。但 Swift 4 通过
Codable 协议增加了对所有类型的序列化支持。Ole Begemann 对 Swift 4
的编码和解码提供了入门简介。例如我们可以这样定义一个 Codable
类型:struct Card: Codable, Equatable { enum Suit: String, Codable {
case clubs, spades, hearts, diamonds } enum Rank: Int, Codable { case
two = 2, three, four, five, six, seven, eight, nine, ten, jack, queen,
king, ace } var suit: Suit var rank: Rank static func ==(lhs: Card, rhs:
Card) -> Bool { return lhs.suit == rhs.suit && lhs.rank == rhs.rank
}}let hand = [Card(suit: .clubs, rank: .ace), Card(suit: .hearts, rank:
.queen最后,Swift 4 提供了两种语言模式,可通过 -swift-version
编译器选项进行选择。在 Swift 3.2 模式中,编译器可接受大部分使用 Swift
3.x 编译器编译的源代码。在该模式下,大部分 Swift 4
语言功能均可用,但针对之前已有 API 的各种更新均不可用。在 Swift 4.0
模式中,我们可以使用 Swift 4
的全部功能,但可能需要改动部分源代码,这一过程通常可通过 Xcode
的迁移助理实现。 Swift 4 还有很多改进,建议阅读 Swift 维护者 Ted
Kremenek 的公告,并通过 Ole Begemann 在交互式 Playground
中提供的所有新功能演示来体验。Swift 4 已包含在 Xcode 9
中,并可手工安装到 Xcode 8.3 中使用。

摘要VasSonic取名于索尼动画形象音速小子,是腾讯QQ会员
VAS团队研发的一个轻量级的高性能的Hybrid框架,专注于提升页面首屏加载速度,完美支持静态直出页面和动态直出页面,兼容离线包等方案。2017年8月8日正式开源!基本介绍VasSonic取名于索尼动画形象音速小子,是腾讯QQ会员
VAS团队研发的一个轻量级的高性能的Hybrid框架,专注于提升页面首屏加载速度,完美支持静态直出页面和动态直出页面,兼容离线包等方案。目前QQ会员、QQ购物、QQ钱包、企鹅电竞等业务已经在使用,平均日均PV在1.2亿以上,并且这个数字还在快速增长。接入VasSonic后首次打开可以在初始化APP的时候并行请求页面资源,并且具备边加载边渲染的能力。非首次打开时,APP可以快速加载上次打开动态缓存在本地的页面资源,然后动态刷新页面。腾讯手机QQ通过VasSonic框架使得页面首屏耗时平均低于1S以下。使用前后对比(OPPO
R9机器,3G环境)使用Sonic模式前:使用Sonic模式后:VasSonic功能特性目前VasSonic框架是市面上支持最为完善的Hybrid框架,完美适用于静态直出页面和动态直出页面。具有以下几大特性:快速:VasSonic通过中间层启动子线程并发拉取页面主资源和流式拦截的方式,支持内核边加载边渲染,弱化终端初始化过程耗时的影响,同时对页面进行动态缓存和增量更新,减少页面对网络数据传输的依赖,极速提升H5页面的加载速度。省流量:VasSonic支持动态缓存页面内容,通过客户端和服务端遵守一定的格式规范,每次请求仅需要返回变动的数据块数据,大大减少响应数据传输。良好的用户体验:通过预推送以及动态缓存页面,VasSonic先加载本地缓存页面,用户可以快速看到内容,即使在无网络场景下,依然能看到首屏内容,让H5页面的体验更加接近原生。易用:VasSonic框架来自腾讯VAS团队超过一年的优化提速总结,它是一整套解决方案,可以快速在Android和iOS平台上接入使用,并且后台支持Node.js和PHP平台一键部署,无须繁琐配置流程。源码托管地址
started with AndroidGetting started with iOSGetting started with
Node.jsGetting started with PHPDemo下载Hereis the Android sample
demo.Hereis the iOS sample demo.

相关文章