1.3.22 • Published 4 years ago

jarvis_rtc_client v1.3.22

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

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: {
        // 是否接受数据传输(必须为true)
        data: true,
        // 是否启用视频
        audio: false,
        // 是否启用音频
        video: false
    }
}

// 房间唯一id
let roomId = "xxx"

// 用于保存房间内所有在线用户列表信息
let roomUserList = []

// 连接host, 必须以 "/" 结尾
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, () => {
    // todo 连接成功, 回调处理...
})

RtcClient.open()

方法

实例化 JarvisRtcClient

实例化JarvisRtcClient之前, 必须在构造函数中传入配置参数, 参数示例如下:

let config = {
    // 自定义扩展参数
    extra: {
        name: '<name>',
        userId: '<userId>',
        other: '....',
        other2: '....'
    },
    session: {
        // 是否接受数据传输(必须为true)
        data: true,
        // 是否启用视频
        audio: false,
        // 是否启用音频
        video: false
    }
}
/**
* connectionHost: 通讯服务端的host, 例如: http://localhost:7001/, 注意, 必须以 "/" 结尾
* roomId: 要进入或创建 的房间id, 客户端生成并传入
* config: 连接配置参数
*/
let RtcClient = new JarvisRtcClient(<connectionHost>, <roomId>, <config>)

open

建立连接

let RtcClient = new JarvisRtcClient(host, roomId, config);

RtcClient.on("onConnectionSuccess", this, () => {
    // connection success , do something...
})

RtcClient.open()

通过监听 onConnectionSuccess 事件, 加入连接成功后的逻辑

发送文本消息

连接成功后, 可以通过send方法发送通讯报文, 报文必须为字符串.
接收并处理消息, 可监听 onMessage 事件进行处理

let msgObject = {
    type: "M01",
    participant: null,
    from: that.userId,
    name: that.name,
    // data: { rtv: '' },
    data: "消息内容",
    time: new Date().getTime()
}
RtcClient.send(JSON.stringify(msgObject))
Param中文类型描述
type报文类型StringM01: 普通消息
participant通道idString通讯用户id, 统称 通道id
from发送消息用户idString平台用户id
name发送者昵称String平台用户昵称
time发送时间Long当前发送时间
data发送消息体String/Object客户端自定义的消息体

disconnect

断开连接

当用户主动断开连接时, 可调用该方法与服务断断开连接

RtcClient.disconnect()

事件

事件监听通用配置:
如想监听 onUserStatusChanged 事件, 只需要添加如下代码即可:

/**
* eventName: 监听的事件名称
* self: 当前函数的作用域 this, 一搬传this即可
* callback: 事件回调函数
*/
RtcClient.on("onUserStatusChanged", that, useList => that.roomUserList = useList)

当用户状态改变时(上线或者离线), 服务端会通过该事件通知客户端. 客户端不需要维护当前房间的用户列表, 只需要监听 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 配置的, 配置详情请点击这里

NameTypeMark
statusString用户状态: "offline", "online"
isEmceeBoolean是否主持人
participantString通讯用户id, 统称 通道id
extraObject
extra.userIdString用户id
extra.nameString用户昵称
extra.mailString用户邮箱

建立连接并连接正常时, 如房间内的其他用户发送消息, 则会在该事件中响应

客户端连接成功回调事件, 当用户加入房间或者创建房间成功, 都会通过该事件回调

1.3.20

4 years ago

1.3.22

4 years ago

1.3.18

4 years ago

1.3.19

4 years ago

1.3.17

4 years ago

1.3.16

4 years ago

1.3.15

4 years ago

1.3.12

4 years ago

1.3.10

4 years ago

1.3.11

4 years ago

1.3.9

4 years ago

1.3.7

4 years ago

1.3.8

4 years ago

1.3.6

4 years ago

1.3.5

4 years ago

1.3.3

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.11

4 years ago

1.1.10

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.1

4 years ago

1.1.2

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago