小程序

小程序

融云im小程序集成初体验

IM即时通讯大神庵 发表了文章 • 0 个评论 • 16 次浏览 • 2 天前 • 来自相关话题

最近领导让做一个小程序端的聊天功能,基于多方考虑,最终选择了融云的im来实现,那就先写个demo体验下吧。首先呢,当然是查看官方文档,文档地址如下: https://docs.rongcloud.cn/v4/views/im/noui/guide/p... ...查看全部

最近领导让做一个小程序端的聊天功能,基于多方考虑,最终选择了融云的im来实现,那就先写个demo体验下吧。

微信截图_20210415151418.png

首先呢,当然是查看官方文档,文档地址如下: https://docs.rongcloud.cn/v4/views/im/noui/guide/private/setting/include/mini.html

需要注意要在管理后台的小程序服务下将小程序的开关打开,否则会报错,相关的demo也可从后端下载到。

拿到sdk了,我们就可以上手集成了,嘻嘻……

由于是demo,暂时先把appkey和token配置写死了,放在了config.js中,appkey和token可以从管理后台获取到。

其次呢,我们需要把im引入,可以整一个公用的js文件,在此引入im sdk,初始化一个全局的im对象(在此呢需要注意im对象一定是全局的,不能赋值给小程序里面的data值,之前我就犯了错,赋值给了data,导致页面只要一调用setData方法就一直报Converting string to Json的错误,大家可以在集成过程中避雷呢)。

引入代码如下:

const RongIMLib = require("./RongIMLib-3.0.7-dev.js");
const config = require("../public/config");
const imInstance = RongIMLib.init({ appkey: config.appkey});
export {
  RongIMLib,
  config,
  imInstance
}

接着我们创建一个主页面,在这个页面中我们可以建立融云的连接以及获取会话列表。

connect() { 
    if (this.data.isConnect) {
        this.data.im.disconnect();
    }
    imInstance.connect({ token: config.token }).then(user => {
        this.isConnect = true;
        this.getConversationList();
        console.log('链接成功, 链接用户 id 为: ', user);
    }).catch(error => {
    console.log('链接失败: ', error);
 });
},

注意事项:在此需要注意安全域名问题,要不会报错,导致连接不上融云的服务。

1. 开发环境的话,可以在右上角的详情中的本地设置中将不校验合法域名的地方打上对勾。

2. 生产环境的话,可以参考如下地址设置: https://docs.rongcloud.cn/v4/views/im/noui/guide/private/setting/include/mini.html

这样的话就可以连接成功了,哈哈,第一步总算是跨出去了。

接下来我们可以在连接成功后获取会话列表,代码如下:

imInstance.Conversation.getList().then(list => {
  this.setData({
    conversationList: list
  })
}).catch(error => {
  console.log('获取会话列表失败: ', error);
});

点击详情跳转到聊天页面,在此需要注意如果要获取历史记录的话是要开通im商业版-单群聊云存储的。开通后按照api使用说明获取就可以了,代码如下:

getHistory(conversation) {
    const option = {
        timestrap: +new Date(),
        count: 10
        };
        conversation.getMessages(option).then((result) => { 
            var hasMore = result.hasMore; // 是否还有历史消息可以获取
            this.setData({
              messageList: result.list
            })
        });      
}

接下来发送消息等其他接口,正常调用就可以了,和web端sdk基本是一致的,参考官方文档即可,整个集成过程花了两三天吧,还算顺利。有不足之处还望大家多多指教,多多交流……

融云官网地址:https://www.rongcloud.cn/

融云开发文档地址:https://docs.rongcloud.cn/v4/


摩拜单车微信小程序开发技术总结

IM即时通讯大兴 发表了文章 • 0 个评论 • 177 次浏览 • 2020-09-25 12:00 • 来自相关话题

前言本文主要讲讲摩拜单车小程序技术方向的总结,在段时间的开发周期内内如何一步步从学习到进阶。思维转变微信小程序没有HTML的常用标签,而是类似React的微信自定义组件,比如view、text、map等没有window变量,但微信提供了wx全局方法集没有a标签... ...查看全部

2739738930-58730c7fc7eb9_articlex.jpg

前言

本文主要讲讲摩拜单车小程序技术方向的总结,在段时间的开发周期内内如何一步步从学习到进阶。

思维转变

  • 微信小程序没有HTML的常用标签,而是类似React的微信自定义组件,比如view、text、map等

  • 没有window变量,但微信提供了wx全局方法集

  • 没有a标签链接,不可嵌套iframe

  • 事件绑定和条件渲染类似Angular,全部写在WXML中

  • 数据绑定采用Mustache双大括号语法

  • 无法操作DOM,通过改变page data(类似React的state)来改变视图展现

所以如果你熟悉以上提到的所有前端技术栈,开发微信小程序你会得心应手。

生命周期

你可以理解小程序就是一个单页面的H5网页,所有元素的加载都是一次性的,这就引来了生命周期的概念:

1.png

  • 首次打开,小程序初始化

  • 小程序初始化完成后,触发onShow事件

  • 小程序被切换到后台(熄屏,切换APP等),触发onHide

  • 小程序从后台切换到前台,再次触发onShow

  • 小程序出错,触发onError

每个页面也有自己的生命周期:

2.png

注意:在微信6.5.3版本中,部分Android机触发不了onLoad事件,可以用onReady替代。

事件广播

“单页面结构”的微信小程序,你可以使用事件广播(统一的事件中心)来注册和触发自定义事件,否则到后期事件管理会越来越乱,而且涉及跨页面传输事件,你更需要这种事件触发机制,可以参考broadcast.js。比如在摩拜单车中有这样的场景:

扫码成功后在开锁页面A提示开锁成功,要跳转到骑行页面B并查询用户骑行状态。 

如果没有统一的事件管理中心,你几乎无法完成这样的过程,当然,可以使用Hack的方式解决。因为跳转到页面B会触发B的onShow事件,所以可以在onShow中写业务逻辑:

// Page A
// 开锁成功后,跳转到Page B
wx.redirectTo({
  url: "/pages/riding/index"
})
// Page B
Page({
  onShow() {
    // 检查骑行状态
  }
}
})

但更合理的应该是利用事件广播来处理:

const broadcast = require("libs/broadcast")
// 先注册事件
broadcast.on("check_ride_state", () => {
  // 检查骑行状态
})
const broadcast = require("libs/broadcast")
// Page A
// 开锁成功后,触发事件,再跳转到Page B
broadcast.fire("check_ride_state")
wx.redirectTo({
  url: "/pages/riding/index"
})

数据中心

根目录的app.js很有用,根目录的app.js很有用,根目录的app.js很有用。

因为在它内部注册的变量或方法,都是可以被所有页面获取到,所以利用它也可以处理上面所述的跨页面事件触发问题。而且可以注册globalData供所有页面取用,例如可以把systemInfo直接注册到globalData中,这样就不用在每个页面都获取一遍:

// app.js
const systemInfo = wx.getSystemInfoSync()
App({
  globalData: {
    systemInfo
  }
})

在页面获取:

// Page A
const {
  systemInfo
} = getApp().globalData

性能优化

小程序运行在微信平台,而且可能和众多小程序“共享运行内存”,可想而知,单个小程序的性能极可能遇到瓶颈而Crash或被微信主动销毁!

比如在摩拜单车有这个场景:

首页展示地图找车,扫码成功后跳转到骑行地图。 

简单的逻辑,直接两个页面,两个map组件切换就可以搞定。实际测试场景中,iOS的确如预期,一切正常,但是在Android下,就很有可能会使得小程序Crash,扫码成功后直接退出了小程序。

解决办法就是, 整个小程序只维护一个map组件 ,通过不同的State来改变map的不同展现:

index.wxml

<map id="map" controls="{{controls}}" style="{{style}}"></map>

index/index.js



这样就成功解决了部分Android设备小程序Crash的问题。


原文地址

https://segmentfault.com/a/1190000008056208



私域流量+小程序直播,2020 星火燎原的直播带货

科技创新林光柘 发表了文章 • 0 个评论 • 72 次浏览 • 2020-06-16 18:03 • 来自相关话题

在疫情的催化下,直播成为各行各业的“万金油”。直播带货也成了一种新的商业模式,薇娅直播卖房、携程梁建章直播卖旅游产品、格力董明珠的直播首秀、李佳琦和朱广权的「小朱佩琦」组合……直播带货在 2020 年掀起了一轮又一轮的热潮!纵观当下,淘宝、抖音、快手三大平台的... ...查看全部

在疫情的催化下,直播成为各行各业的“万金油”。直播带货也成了一种新的商业模式,薇娅直播卖房、携程梁建章直播卖旅游产品、格力董明珠的直播首秀、李佳琦和朱广权的「小朱佩琦」组合……直播带货在 2020 年掀起了一轮又一轮的热潮!

纵观当下,淘宝、抖音、快手三大平台的直播带货如火如荼,头部和腰部主播的热度居高不下,坑位费普遍上涨,卖货的佣金比例也有所增加,按照二八法则,后入者的门槛相对变高。

于是,不少商户和品牌主把小程序作为直播带货的第二战场,背靠微信成熟的生态和巨大的流量池,兼具强社交和易传播的优势,借力小程序高效连接线上和线下,把零售电商的核心要素充分联结起来,实现私域流量池的建立和变现。

无需安装、触手可及、用完即走、裂变分享,小程序直播,无疑将成为电商的必争之地。


小程序直播的护城河

原生优势,获客效率更高
从引爆私域流量开始,实现流量沉淀
借助营销工具组合,提升成交效率
处于封闭的生态循环,赋能数据决策
不止直播,引流到店
小程序直播带货的组成要素

一、直播平台视频源推流端+播放端;

针对音视频进行采集、预处理、然后对其进行编码和推流。

采集主要分为音频采集和图像采集,各平台的采集方式也不一样,安卓端主要是通过 MediaRecorder 进行采集,iOS 通过 AVFoundation.framwork。

至于预处理,就是对视频进行美白、磨皮、添加滤镜和水印,对于音频进行混音、降噪和特效处理。

编码的话,主要就是考虑如何处理空间冗余、时间冗余、编码冗余、视觉冗余问题。

那么推流的话,就要考虑如何选择 RTMP、WebRTC 和 UDP 自定义协议这些流媒体协议了。目前融云提供的是基于 WebRTC 的低延时视频直播解决方案,主播端与观众端延时不超过 350ms,实时互动,延迟无感知。

二、直播平台互动系统

1)通过融云直播聊天室解决方案,直播间的关键事件可以自动触发消息,如进入、关注、分享、下单等等。

聚拢人气,有新的观众进入直播间,会触发消息提示:


多形式引导关注主播,有新观众关注主播时会显示:


分享直播间形成裂变式增长,观众分享直播间会显示:


观众下单商品则会在直播间中显示:


2)观众互动可以设置多种消息展现效果。

点赞:当观众点赞直播间时,可以设置有动画效果飘起来。


弹幕互动:当有观众在线咨询时,主播可以在直播中直接回答,亦可以辅助一个小客服助手进行文字回答。


互动系统本质就是个即时通讯的聊天室系统,只有观看的时候才会进入聊天室接收消息,成员组成松散且进出频繁。但遇到“罗永浩”这样的人气主播,高达300W人同时在线,同一秒十几万人同时发消息很常见,所有消息都要看到吗?手机收的下来吗?观众看得过来吗?哪些发?哪些必达?哪些抛弃?按事件?按消息?按主播?

通过多年的最佳实践,融云直播聊天室解决方案可以通过白名单、优先级等消息分级手段,大喇叭广播等功能,既保证了直播间人气,又合理控制消息下发的数量,同时确保了重要信息的必答。此前融云曾稳定支持了《2016全民秀场主播》、《2017答题冲顶大会》、《2018俄罗斯世界杯》、《70周年国庆大阅兵》、《罗永浩·创业干货日记》、《广州直播购物节·吴召国思埠集团专场》等多次大型直播事件。


三、直播带货常用玩法

玩法1:直播预告,超值商品抢抢抢,1分钱秒杀!开抢倒计时,大喇叭广播!


玩法2:观看人数到达某一量级的福利环节,观看者数量累加到指定数量即开启发红包、抽大奖等互动玩法。


玩法3:商品购物,观众可以直接在商品列表中下单,实时显示商品销量。


常用玩法带来的高并发问题

回想这些年的618、双十一,仅仅是电商系统的高并发就已经让很多平台焦头烂额。举个例子,某知名平台正在举行直播答题活动,由于用户涌入过猛,导致服务器宕机,但在系统崩溃前,已累计几百万多万观众在线观看。由此可见,因高并发未能处理好而造成大流量损失,从直播平台运营的角度上说,后果是比较惨重的。

从直播角度上来讲,若在某个时间点,直播平台能够承载大量的线上观看人数而不影响品质,说明该平台在出现高并发情况时,优化的比较到位。直播的音视频系统、直播的互动系统往往有三方的服务商提供高并发的能力,而直播间公告、同时在线人数、观看人数、商品链接及销量信息等等,凡是与每一个直播间相关的数据,在传统的直播平台,直播间里面的这些信息都是需要直播电商的服务端自行完成的。

制约直播平台高并发的最后一个瓶颈也就由此出现了,由于客户端与服务端之间没有长连接的机制,一切都要依赖于短连接的请求完成,几十万人同时请求应用服务器,数据的吞吐量以及数据的处理和返回等问题都需要解决,并且还要经过高并发的压力测试。

而现在,都可以利用融云的聊天室属性管理服务来解决,加入聊天室自动读取、异常退出自动读取、更新属性自动通知、服务端客户端均可修改属性值,充分利用融云的聊天室管理能力,直播间公告、同时在线人数、观看人数、商品链接、销量信息,以及关注、点赞、分享次数,加入成员列表等等,统统不在话下,每月仅需1000 元,不用担心高并发问题,还可以释放自己的服务器资源,何乐而不为呢?

融云im小程序集成初体验

IM即时通讯大神庵 发表了文章 • 0 个评论 • 16 次浏览 • 2 天前 • 来自相关话题

最近领导让做一个小程序端的聊天功能,基于多方考虑,最终选择了融云的im来实现,那就先写个demo体验下吧。首先呢,当然是查看官方文档,文档地址如下: https://docs.rongcloud.cn/v4/views/im/noui/guide/p... ...查看全部

最近领导让做一个小程序端的聊天功能,基于多方考虑,最终选择了融云的im来实现,那就先写个demo体验下吧。

微信截图_20210415151418.png

首先呢,当然是查看官方文档,文档地址如下: https://docs.rongcloud.cn/v4/views/im/noui/guide/private/setting/include/mini.html

需要注意要在管理后台的小程序服务下将小程序的开关打开,否则会报错,相关的demo也可从后端下载到。

拿到sdk了,我们就可以上手集成了,嘻嘻……

由于是demo,暂时先把appkey和token配置写死了,放在了config.js中,appkey和token可以从管理后台获取到。

其次呢,我们需要把im引入,可以整一个公用的js文件,在此引入im sdk,初始化一个全局的im对象(在此呢需要注意im对象一定是全局的,不能赋值给小程序里面的data值,之前我就犯了错,赋值给了data,导致页面只要一调用setData方法就一直报Converting string to Json的错误,大家可以在集成过程中避雷呢)。

引入代码如下:

const RongIMLib = require("./RongIMLib-3.0.7-dev.js");
const config = require("../public/config");
const imInstance = RongIMLib.init({ appkey: config.appkey});
export {
  RongIMLib,
  config,
  imInstance
}

接着我们创建一个主页面,在这个页面中我们可以建立融云的连接以及获取会话列表。

connect() { 
    if (this.data.isConnect) {
        this.data.im.disconnect();
    }
    imInstance.connect({ token: config.token }).then(user => {
        this.isConnect = true;
        this.getConversationList();
        console.log('链接成功, 链接用户 id 为: ', user);
    }).catch(error => {
    console.log('链接失败: ', error);
 });
},

注意事项:在此需要注意安全域名问题,要不会报错,导致连接不上融云的服务。

1. 开发环境的话,可以在右上角的详情中的本地设置中将不校验合法域名的地方打上对勾。

2. 生产环境的话,可以参考如下地址设置: https://docs.rongcloud.cn/v4/views/im/noui/guide/private/setting/include/mini.html

这样的话就可以连接成功了,哈哈,第一步总算是跨出去了。

接下来我们可以在连接成功后获取会话列表,代码如下:

imInstance.Conversation.getList().then(list => {
  this.setData({
    conversationList: list
  })
}).catch(error => {
  console.log('获取会话列表失败: ', error);
});

点击详情跳转到聊天页面,在此需要注意如果要获取历史记录的话是要开通im商业版-单群聊云存储的。开通后按照api使用说明获取就可以了,代码如下:

getHistory(conversation) {
    const option = {
        timestrap: +new Date(),
        count: 10
        };
        conversation.getMessages(option).then((result) => { 
            var hasMore = result.hasMore; // 是否还有历史消息可以获取
            this.setData({
              messageList: result.list
            })
        });      
}

接下来发送消息等其他接口,正常调用就可以了,和web端sdk基本是一致的,参考官方文档即可,整个集成过程花了两三天吧,还算顺利。有不足之处还望大家多多指教,多多交流……

融云官网地址:https://www.rongcloud.cn/

融云开发文档地址:https://docs.rongcloud.cn/v4/


摩拜单车微信小程序开发技术总结

IM即时通讯大兴 发表了文章 • 0 个评论 • 177 次浏览 • 2020-09-25 12:00 • 来自相关话题

前言本文主要讲讲摩拜单车小程序技术方向的总结,在段时间的开发周期内内如何一步步从学习到进阶。思维转变微信小程序没有HTML的常用标签,而是类似React的微信自定义组件,比如view、text、map等没有window变量,但微信提供了wx全局方法集没有a标签... ...查看全部

2739738930-58730c7fc7eb9_articlex.jpg

前言

本文主要讲讲摩拜单车小程序技术方向的总结,在段时间的开发周期内内如何一步步从学习到进阶。

思维转变

  • 微信小程序没有HTML的常用标签,而是类似React的微信自定义组件,比如view、text、map等

  • 没有window变量,但微信提供了wx全局方法集

  • 没有a标签链接,不可嵌套iframe

  • 事件绑定和条件渲染类似Angular,全部写在WXML中

  • 数据绑定采用Mustache双大括号语法

  • 无法操作DOM,通过改变page data(类似React的state)来改变视图展现

所以如果你熟悉以上提到的所有前端技术栈,开发微信小程序你会得心应手。

生命周期

你可以理解小程序就是一个单页面的H5网页,所有元素的加载都是一次性的,这就引来了生命周期的概念:

1.png

  • 首次打开,小程序初始化

  • 小程序初始化完成后,触发onShow事件

  • 小程序被切换到后台(熄屏,切换APP等),触发onHide

  • 小程序从后台切换到前台,再次触发onShow

  • 小程序出错,触发onError

每个页面也有自己的生命周期:

2.png

注意:在微信6.5.3版本中,部分Android机触发不了onLoad事件,可以用onReady替代。

事件广播

“单页面结构”的微信小程序,你可以使用事件广播(统一的事件中心)来注册和触发自定义事件,否则到后期事件管理会越来越乱,而且涉及跨页面传输事件,你更需要这种事件触发机制,可以参考broadcast.js。比如在摩拜单车中有这样的场景:

扫码成功后在开锁页面A提示开锁成功,要跳转到骑行页面B并查询用户骑行状态。 

如果没有统一的事件管理中心,你几乎无法完成这样的过程,当然,可以使用Hack的方式解决。因为跳转到页面B会触发B的onShow事件,所以可以在onShow中写业务逻辑:

// Page A
// 开锁成功后,跳转到Page B
wx.redirectTo({
  url: "/pages/riding/index"
})
// Page B
Page({
  onShow() {
    // 检查骑行状态
  }
}
})

但更合理的应该是利用事件广播来处理:

const broadcast = require("libs/broadcast")
// 先注册事件
broadcast.on("check_ride_state", () => {
  // 检查骑行状态
})
const broadcast = require("libs/broadcast")
// Page A
// 开锁成功后,触发事件,再跳转到Page B
broadcast.fire("check_ride_state")
wx.redirectTo({
  url: "/pages/riding/index"
})

数据中心

根目录的app.js很有用,根目录的app.js很有用,根目录的app.js很有用。

因为在它内部注册的变量或方法,都是可以被所有页面获取到,所以利用它也可以处理上面所述的跨页面事件触发问题。而且可以注册globalData供所有页面取用,例如可以把systemInfo直接注册到globalData中,这样就不用在每个页面都获取一遍:

// app.js
const systemInfo = wx.getSystemInfoSync()
App({
  globalData: {
    systemInfo
  }
})

在页面获取:

// Page A
const {
  systemInfo
} = getApp().globalData

性能优化

小程序运行在微信平台,而且可能和众多小程序“共享运行内存”,可想而知,单个小程序的性能极可能遇到瓶颈而Crash或被微信主动销毁!

比如在摩拜单车有这个场景:

首页展示地图找车,扫码成功后跳转到骑行地图。 

简单的逻辑,直接两个页面,两个map组件切换就可以搞定。实际测试场景中,iOS的确如预期,一切正常,但是在Android下,就很有可能会使得小程序Crash,扫码成功后直接退出了小程序。

解决办法就是, 整个小程序只维护一个map组件 ,通过不同的State来改变map的不同展现:

index.wxml

<map id="map" controls="{{controls}}" style="{{style}}"></map>

index/index.js



这样就成功解决了部分Android设备小程序Crash的问题。


原文地址

https://segmentfault.com/a/1190000008056208



私域流量+小程序直播,2020 星火燎原的直播带货

科技创新林光柘 发表了文章 • 0 个评论 • 72 次浏览 • 2020-06-16 18:03 • 来自相关话题

在疫情的催化下,直播成为各行各业的“万金油”。直播带货也成了一种新的商业模式,薇娅直播卖房、携程梁建章直播卖旅游产品、格力董明珠的直播首秀、李佳琦和朱广权的「小朱佩琦」组合……直播带货在 2020 年掀起了一轮又一轮的热潮!纵观当下,淘宝、抖音、快手三大平台的... ...查看全部

在疫情的催化下,直播成为各行各业的“万金油”。直播带货也成了一种新的商业模式,薇娅直播卖房、携程梁建章直播卖旅游产品、格力董明珠的直播首秀、李佳琦和朱广权的「小朱佩琦」组合……直播带货在 2020 年掀起了一轮又一轮的热潮!

纵观当下,淘宝、抖音、快手三大平台的直播带货如火如荼,头部和腰部主播的热度居高不下,坑位费普遍上涨,卖货的佣金比例也有所增加,按照二八法则,后入者的门槛相对变高。

于是,不少商户和品牌主把小程序作为直播带货的第二战场,背靠微信成熟的生态和巨大的流量池,兼具强社交和易传播的优势,借力小程序高效连接线上和线下,把零售电商的核心要素充分联结起来,实现私域流量池的建立和变现。

无需安装、触手可及、用完即走、裂变分享,小程序直播,无疑将成为电商的必争之地。


小程序直播的护城河

原生优势,获客效率更高
从引爆私域流量开始,实现流量沉淀
借助营销工具组合,提升成交效率
处于封闭的生态循环,赋能数据决策
不止直播,引流到店
小程序直播带货的组成要素

一、直播平台视频源推流端+播放端;

针对音视频进行采集、预处理、然后对其进行编码和推流。

采集主要分为音频采集和图像采集,各平台的采集方式也不一样,安卓端主要是通过 MediaRecorder 进行采集,iOS 通过 AVFoundation.framwork。

至于预处理,就是对视频进行美白、磨皮、添加滤镜和水印,对于音频进行混音、降噪和特效处理。

编码的话,主要就是考虑如何处理空间冗余、时间冗余、编码冗余、视觉冗余问题。

那么推流的话,就要考虑如何选择 RTMP、WebRTC 和 UDP 自定义协议这些流媒体协议了。目前融云提供的是基于 WebRTC 的低延时视频直播解决方案,主播端与观众端延时不超过 350ms,实时互动,延迟无感知。

二、直播平台互动系统

1)通过融云直播聊天室解决方案,直播间的关键事件可以自动触发消息,如进入、关注、分享、下单等等。

聚拢人气,有新的观众进入直播间,会触发消息提示:


多形式引导关注主播,有新观众关注主播时会显示:


分享直播间形成裂变式增长,观众分享直播间会显示:


观众下单商品则会在直播间中显示:


2)观众互动可以设置多种消息展现效果。

点赞:当观众点赞直播间时,可以设置有动画效果飘起来。


弹幕互动:当有观众在线咨询时,主播可以在直播中直接回答,亦可以辅助一个小客服助手进行文字回答。


互动系统本质就是个即时通讯的聊天室系统,只有观看的时候才会进入聊天室接收消息,成员组成松散且进出频繁。但遇到“罗永浩”这样的人气主播,高达300W人同时在线,同一秒十几万人同时发消息很常见,所有消息都要看到吗?手机收的下来吗?观众看得过来吗?哪些发?哪些必达?哪些抛弃?按事件?按消息?按主播?

通过多年的最佳实践,融云直播聊天室解决方案可以通过白名单、优先级等消息分级手段,大喇叭广播等功能,既保证了直播间人气,又合理控制消息下发的数量,同时确保了重要信息的必答。此前融云曾稳定支持了《2016全民秀场主播》、《2017答题冲顶大会》、《2018俄罗斯世界杯》、《70周年国庆大阅兵》、《罗永浩·创业干货日记》、《广州直播购物节·吴召国思埠集团专场》等多次大型直播事件。


三、直播带货常用玩法

玩法1:直播预告,超值商品抢抢抢,1分钱秒杀!开抢倒计时,大喇叭广播!


玩法2:观看人数到达某一量级的福利环节,观看者数量累加到指定数量即开启发红包、抽大奖等互动玩法。


玩法3:商品购物,观众可以直接在商品列表中下单,实时显示商品销量。


常用玩法带来的高并发问题

回想这些年的618、双十一,仅仅是电商系统的高并发就已经让很多平台焦头烂额。举个例子,某知名平台正在举行直播答题活动,由于用户涌入过猛,导致服务器宕机,但在系统崩溃前,已累计几百万多万观众在线观看。由此可见,因高并发未能处理好而造成大流量损失,从直播平台运营的角度上说,后果是比较惨重的。

从直播角度上来讲,若在某个时间点,直播平台能够承载大量的线上观看人数而不影响品质,说明该平台在出现高并发情况时,优化的比较到位。直播的音视频系统、直播的互动系统往往有三方的服务商提供高并发的能力,而直播间公告、同时在线人数、观看人数、商品链接及销量信息等等,凡是与每一个直播间相关的数据,在传统的直播平台,直播间里面的这些信息都是需要直播电商的服务端自行完成的。

制约直播平台高并发的最后一个瓶颈也就由此出现了,由于客户端与服务端之间没有长连接的机制,一切都要依赖于短连接的请求完成,几十万人同时请求应用服务器,数据的吞吐量以及数据的处理和返回等问题都需要解决,并且还要经过高并发的压力测试。

而现在,都可以利用融云的聊天室属性管理服务来解决,加入聊天室自动读取、异常退出自动读取、更新属性自动通知、服务端客户端均可修改属性值,充分利用融云的聊天室管理能力,直播间公告、同时在线人数、观看人数、商品链接、销量信息,以及关注、点赞、分享次数,加入成员列表等等,统统不在话下,每月仅需1000 元,不用担心高并发问题,还可以释放自己的服务器资源,何乐而不为呢?

小程序