Jarvis Rtc client
安装依赖: https://www.npmjs.com/package/jarvis_rtc_client
安装最新版本
npm i jarvis_rtc_client -S
yarn add jarvis_rtc_client -S
快速接入
import JarvisRtcClient from "JarvisRtcClient"
let config = {
extra: {
name: '<name>',
userId: '<userId>',
other: '....',
other2: '....'
},
session: {
data: true,
audio: false,
video: false
}
}
let roomId = "xxx"
let roomUserList = []
let connectionHost = "http://localhost:7001/"
RtcClient = new JarvisRtcClient(connectionHost, roomId, config);
RtcClient.debug = true
RtcClient.on("onUserStatusChanged", this, useList => roomUserList = useList)
RtcClient.on("onMessage", this, msgObject => {})
RtcClient.on("onConnectionSuccess", this, () => {
})
RtcClient.open()
方法
JarvisRtcClient
实例化 JarvisRtcClient
实例化JarvisRtcClient
之前, 必须在构造函数中传入配置参数, 参数示例如下:
let config = {
extra: {
name: '<name>',
userId: '<userId>',
other: '....',
other2: '....'
},
session: {
data: true,
audio: false,
video: false
}
}
let RtcClient = new JarvisRtcClient(<connectionHost>, <roomId>, <config>)
open
建立连接
let RtcClient = new JarvisRtcClient(host, roomId, config);
RtcClient.on("onConnectionSuccess", this, () => {
})
RtcClient.open()
通过监听 onConnectionSuccess 事件, 加入连接成功后的逻辑
send
发送文本消息
连接成功后, 可以通过send
方法发送通讯报文, 报文必须为字符串.
接收并处理消息, 可监听 onMessage 事件进行处理
let msgObject = {
type: "M01",
participant: null,
from: that.userId,
name: that.name,
data: "消息内容",
time: new Date().getTime()
}
RtcClient.send(JSON.stringify(msgObject))
Param | 中文 | 类型 | 描述 |
---|
type | 报文类型 | String | M01: 普通消息 |
participant | 通道id | String | 通讯用户id, 统称 通道id |
from | 发送消息用户id | String | 平台用户id |
name | 发送者昵称 | String | 平台用户昵称 |
time | 发送时间 | Long | 当前发送时间 |
data | 发送消息体 | String/Object | 客户端自定义的消息体 |
disconnect
断开连接
当用户主动断开连接时, 可调用该方法与服务断断开连接
RtcClient.disconnect()
事件
事件监听通用配置:
如想监听 onUserStatusChanged
事件, 只需要添加如下代码即可:
RtcClient.on("onUserStatusChanged", that, useList => that.roomUserList = useList)
onUserStatusChanged
当用户状态改变时(上线或者离线), 服务端会通过该事件通知客户端. 客户端不需要维护当前房间的用户列表, 只需要监听 onUserStatusChanged
事件, 并把回调的列表参数(用户列表)展现出来, 就可以了
示例demo:
let roomUserList = []
RtcClient.on("onUserStatusChanged", that, useList => that.roomUserList = useList)
useList item示例:
[
{
status: "online",
isEmcee: true,
participant: "",
extra: {
userId: "",
name: "",
mail: ""
}
}
]
extra
为用户建立连接前, 实例化时通过 config 配置的, 配置详情请点击这里
Name | Type | Mark |
---|
status | String | 用户状态: "offline", "online" |
isEmcee | Boolean | 是否主持人 |
participant | String | 通讯用户id, 统称 通道id |
extra | Object | |
extra.userId | String | 用户id |
extra.name | String | 用户昵称 |
extra.mail | String | 用户邮箱 |
onMessage
建立连接并连接正常时, 如房间内的其他用户发送消息, 则会在该事件中响应
onConnectionSuccess
客户端连接成功回调事件, 当用户加入房间或者创建房间成功, 都会通过该事件回调