跳转至

入门必读

重要概念

房间

  • 非即时房间: 使用本SDK之前,您需要使用 webapi访问管理系统页面 来创建的房间。使用获得的房间号即可与同房间用户进行音视频和其他数据的交换了。

  • 即时房间: 直接调用SDK接口,joinRoomEx ,同时可以进入房间进行音视频交互。

用户

  • 使用网页、客户端或手机app皆可进入房间,每一个接入房间的客户端实例,我们称为一个用户

音视频

  • 每个具有可用的音视频采集设备的用户都可以单独发布自己的音频数据,也可以同时发布音视频数据。

使用指南

进出房间

关于用户

  • 每一个连接到房间内的客户端,被称为一个用户。用户的身份由userId来唯一标识。当您在调用 joinroom 接口时,如果传入一个userId,则本地用户的userId即为您设定的Id。如果没有传,则SDK会自动生成一个guid作为您的userId。但请注意,无论是哪种情况,系统不允许同一个房间内存在userId相等的两个用户。所以当您使用一个房间内已经存在的userId进入房间时,服务器会把之前使用这个id的用户请出房间。

  • 除了userId外,每个用户还有一些其他属性(预定义的和自定义的),您可以使用 changeUserProperty 接口来修改任一用户的任一属性,并且可以指定把这项修改通知给哪个(些)用户(或者只包括自己)。随后,您指定的用户就会收到一个事件TK.EVENT_TYPE.roomUserPropertyChanged(用户属性改变),告知某个用户的某些属性被修改了。

音视频

自定义信令

  • 利用自定义信令接口,您可以完成您设计的各种业务流程,创造各种激动人心的用户体验。我们把各种信令都抽象成了消息,和用户类似,消息有自己的idnamename可以和其他消息重名,但id必须在房间内唯一,id相同的消息,后来的会替换之前的。除了这两个属性,消息还有这些属性:
属性名 说明
toId 谁会接收到该消息的通知。可以填入目标用户的peerID(可以是自己),也可以填入预设身份集合,见消息发送角色
data 数据(可存放各种数据结构,包括数字、字符串、Json)
save 是否保存。当为true时,服务器会在房间内保存该条消息,新进入的用户会收到该条消息。如果连续发两条id相同且需要保存的消息,服务器只会保存后一条。当为false时,服务器在转发完这条消息后,即将此消息抛弃

具体流程如下:

  1. 调用 pubMsg 接口发布一条消息,则所有指定用户将收到事件TK.EVENT_TYPE.roomPubmsg(自定义消息发布)

  2. 如果这条消息是指定保存的,则之后新进入房间的用户会收到事件TK.EVENT_TYPE.roomConnected(房间连接成功)的数据中带有当前服务器的所有保存的且未删除的消息数组。

  3. 在发布消息之后,可以再次调用 pubMsg 接口,发布一条相同id的消息来覆盖它,则指定用户会再次收到事件TK.EVENT_TYPE.roomPubmsg(房间自定义消息发布)

  4. 也可以调用 delMsg 接口来删除此消息,此时指定用户会收到事件TK.EVENT_TYPE.roomDelmsg(自定义消息删除)

© 2016-2023 北京拓课网络科技有限公司 版权所有  京ICP备17018423号-1 京公网安备11010502043461号