社会高度发展的今天,大家都离不开社交和社交网络。近几年,直播行业的稳定高速发展,背后隐藏一个事实,大家需要一个实时性更高的互联网环境,就像面对面沟通那样的及时有效。
这次尝试了一下 Agora Signaling SDK。
初识 Agora Signaling
Agora Signaling 是Agora 全家桶一员,主要用来实现即时点对点通信。Agora Signalling 是作为插件的形式服务于 Agora 全家桶,也可以单独用于实时消息通信的场景。
SDK
Agora 的 SDK 适配的常见的开发环境。端上、server,各种运行环境都有demo可供参考。
https://docs.agora.io/cn/Signaling/downloads
文档
Agora 官网已经提供了比较完善的文档资料。
以 Agroa Signaling 为例,我们可以看到官网分别就客户端集成和服务端集成进行了介绍,而客户端部分又针对常见客户端实现进行的清晰简单的讲解。
拥有一定开发经验的攻城狮很快便能上手。
当然我们也发现一个问题,文档上只有 quick start, 没有进一步介绍接口使用的注意事项。带着这个疑惑,笔者迅速浏览了API参考部分,所有接口都没有提供具体的demo code 和注意事项。
基本接入思路
- 初始化
创建实例
getInstance
回调设置
callbackSet
- 登录
login2
- 点对点消息
发消息
messageInstantSend
收消息
onMessageInstantReceive
- 频道消息
进频道
channelJoin
发频道消息
messageChannelSend
收频道消息
onMessageChannelReceive
离开频道
channelLeave
- 呼叫邀请
发起呼叫邀请
channelInviteUser2
接受呼叫邀请
channelInviteAccept
拒绝呼叫
channelInviteRefuse
结束呼叫
channelInviteEnd
- 注销
logout
demo
Agroa 官网提供了关于 Agora-Signaling 的各种demo,初略浏览一番,比较容易看懂,没有什么很奇怪的写法。
但是,这些demo都有一个问题,没有注释。这对不曾接触Agora产品的新手不是特别友好,可能要花比较多精力来熟悉这些接口。
可能的一些应用场景
通过Agora 官网及已经公布的API 。我们可以了解到,常见带身份信息的文本聊天完全不在话下,基于Agora Signaling的demo,我们只要关心一下自己的业务模型,端上套个皮就能实现聊天室、留言板等互动交流场景。
直播间的弹幕聊天
直播间聊天和弹幕聊天,本质上就是一个留言板和即时通讯的合体。而Agora Sinaling 本身就是为实时通信互动而生,实现这样的功能只要加一个聊天数据库来保留历史记录即可。
医患远程诊断
现实生活中,受距离、时间、心理等诸多因素影响,病患并不一定能及时到达医院,医生也未必能及时到达现场,这时候及时通讯网络可以提供诸多方便。病患或病患家属可以通过一个App 将患情通过 影像、声音、文字传递给医生,同时可以随时的沟通,就像现场问诊一样,病患可能也需要一个病友群或频道来分享交流。
消息通知
相信大家对手机短信、微信消息、qq消息都不陌生,我们借助 Agora Sinaling 也是可以实现简单版本的网络短信功能的。
客服功能
有些产品可能需要一个客服功能,这样遇到使用问题时,可以随时通过聊天窗口咨询,而且不需要额外的添加客服人员的微信。有效沟通,同时保护彼此隐私。
实时性比较高的设备间通信
比如我在A省有一批矿机,需要及时的了解机房状况,那么我在机房可以设置一个通信机,将采集到的数据通过 Agora Signaling 及时传回并记录在数据库。虽然这个场景可能并不是Agora Signaling 设计初衷,但作为一种可行的备选也是不错的。
Mooc 课堂在线互动
各种mooc 学堂的远程授课方案,包括远程考试等, 课堂互动可不局限于文字、语音、图像,通常要结合起来。
直播导购互动
如果有这样一种直播活动,画面上和电视导购没什么区别,但是可以通过更方便的方式下单,扫码,沟通,填写信息,付款,获取订单状态,以及端上的现场互动等。
科研领域
需要远程采集观测的各种数据等。实验展示等。实验数据实时采集处理等。
几乎能想到的任何需要 实时通信、点对点通信、或者分频道通信的场景,都尝试着去实现。
下一篇会分享一下个人的尝试过程,以及里面遇到的一些问题和应对方法。
你好,关于弹幕聊天,您说加一个聊天数据库来保存数据库即可,
请问服务器端怎么获取所有的用户的发言记录呢?
多谢。
onMessageChannelReceive 好像只能收到频道内的广播信息,有办法监听或者获取用户之间的点对点聊天信息吗?
实际上,目前,信令server端最方便的使用场景是做消息通知。聊天室之类的想要实现消息记录都需要自己实现。