Pano开发者中心
  • 文档中心
  • 下载中心

›Web SDK

新手入门

  • 简介
  • 名词解释
  • 创建第一个应用

规则说明

  • Channel ID命名规则
  • 权限控制
  • 计费说明
  • 频道最大时长说明
  • 每月一万分钟免费说明
  • 布局参数说明
  • 水印

场景方案

    教育行业

    • 1vN互动小班课
    • 互动直播大班课

快速接入

  • 简介
  • 音视频

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Electron
    • Flutter
    • React Native

    白板

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Electron
    • Flutter

高级功能(RTC)

  • 简介
  • 屏幕共享
  • 状态回调
  • 设备诊断
  • 音量指示
  • 控制音量
  • 声卡操作
  • 混音/伴音
  • 混响
  • 耳返
  • 变声
  • 美颜
  • 音视频数据回调
  • 音视频外部采集
  • 收发多路视频
  • 性能检测
  • 截图
  • 反馈

高级功能(RTS)

  • 简介
  • 白板

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web

    消息

    • 消息服务

    标注

    • 视频标注
    • 共享标注

    远程控制

    • 远程控制

操作实践

  • 切换大小屏

RESTful API

  • 基本格式
  • 生成Token
  • 频道管理
  • 云端录制
  • CDN推流
  • 文档转码
  • 消息服务
  • 服务端消息通知

SDK API

  • SDK接口说明
  • Windows (C++)
  • macOS/iOS (Objective-C)
  • Android (Java)
  • Web SDK (IE专用版)
  • Web SDK

    • 浏览器兼容性
    • PanoRtc 参考
    • RtcEngine
    • RtcWhiteboard
    • RtcMessage
    • RtsService
    • Annotation
    • Constants

更新记录

  • 简介
  • Windows
  • macOS
  • iOS
  • Android
  • Electron
  • Flutter
  • React Native
  • Web(全功能SDK)
  • Web(RTS SDK)
  • Web(IE专用音视频SDK)

帮助

  • FAQ
  • 更多帮助

RtcMessage

简介

  • RtcMessage 是单例模式的,可以通过 RtcMessage.getInstance() 获取实例,也可以通过 RtsService.getInstance().getRtcMessage() 获取实例。
  • RtsService 和 RtcMessage 都可以从 panortc 或 panorts SDK中导出。

RtcMessage 用来给频道内的其他用户发送即时消息。

RtcMessage 会在 joinChannel 成功后自动连接,有三种方式初始化 RtcMessage:

  1. 如果您使用 @pano.video/panortc,可以在调用 rtcEngine 的 joinChannel 方法时,选择合适的入会类型(除了 JoinChannelType.mediaOnly之外的其他类型),RtcMessage 会在入会成功后自动连接
  2. 如果您使用 @pano.video/panorts,可以直接使用 RtcWhiteboard 实例入会,RtcMessage 会在 joinChannel 成功后自动连接
  3. 如果您使用 @pano.video/panorts,但不需要使用白板,或者不需要在刚加入频道时就白板,可以使用 RtsService 入会,RtcMessage 会在 joinChannel 成功后自动连接

Properties

sessionProperty

• sessionProperty: object= {}

session 自定义属性,通过 setProperty 方法设置

Accessors

isConnected

• get isConnected(): boolean

是否已经连接到服务器

Returns: boolean

Methods

broadcastMessage

▸ broadcastMessage(message: any, sendBack: boolean): QResult

Parameters:

NameTypeDescription
messageany (字符串或普通对象)消息
sendBackboolean是否发送给自己

广播消息,在频道中的所有用户都会受到该消息

Returns: QResult


getRoster

▸ getRoster(): { name: string ; userData: string ; userId: string }[]

获取在当前会话中所有用户的列表

Returns: { name: string ; userData: string ; userId: string }[]


joinSession

▸ joinSession(): StatusCode

加入RtcMessage会话

注意RtcMessage会在JoinChannel时自动连接,一般情况下开发者不需要主动调用这个方法

Returns: StatusCode


leave

▸ leave(): StatusCode

离开会话,其他用户会收到当前用户离开会话的事件

Returns: StatusCode


off

▸ off<T>(event: T, fn?: (...args: any[]) => void, context?: any, once?: boolean): void

Type parameters

NameType
Tstring \symbol

Parameters:

NameType
eventT
fn?(...args: any[]) => void
context?any
once?boolean

取消事件监听


on

▸ on<T>(event: T, fn: (...args: any[]) => void, context?: any): void

Add a listener for a given event.

Type parameters

NameType
Tstring \symbol

Parameters:

NameType
eventT
fn(...args: any[]) => void
context?any

添加事件监听


publishTopicMessage

▸ publishTopicMessage(topic: string, data: any ): void

发布某个主题的消息

Parameters:

NameType
topicstring
dataany

Returns: void


sendMessage

▸ sendMessage(to: string, message: string | Record<string | number | symbol, any>): QResult

向某个用户发送消息

Parameters:

NameTypeDescription
tostring用户id
messageany消息

Returns: QResult


setProperty

▸ setProperty(property: string, value?: any, seqId?: number): void

设置 session 自定义属性,设置后会触发 propertyChanged 事件,rtcMessage session 中所有用户都会接收到。

可以通过 sessionProperty 属性获取所有设置的自定义属性。

Parameters:

NameTypeDescription
propertystring属性名称
value?any属性值

Returns: void


subscribeTopic

▸ subscribeTopic(topic: string): void

订阅某个主题的消息,订阅主题之后,会收到 topicMessageReceived 事件

Parameters:

NameTypeDescription
topicstring主题

Returns: void


updateUserData

▸ updateUserData(userData: string, userName?: string): StatusCode

更新用户数据,数据会保存在服务器,其他用户会收到 userUpdate 和 rosterUpdate 事件,可从 roster 中获取该数据

Parameters:

NameType
userNamestring
userDatastring

Returns: StatusCode


unsubscribeTopic

▸ unsubscribeTopic(topic: string): void

取消订阅某个主题的消息

Parameters:

NameType
topicstring

Returns: void


getInstance

▸ Static getInstance(): RtcMessage

获取 RtcMessage 实例

Returns: RtcMessage

Events

RtcMessage 实例会在某些事件发生时触发对应的事件,开发者可以监听这些事件设置响应的处理方法

messageReceived

接收到消息

RtcMessage.getInstance().on(
  RtcMessage.Events.messageReceived,
  ({ from: string, message: any }) => {
    console.log('messageReceived', from, message);
  }
);

propertyChanged

自定义属性更新

RtcMessage.getInstance().on(
  RtcMessage.Events.propertyChanged,
  (type: 'update' | 'delete', propName: string, propValue: any) 
    => console.log('propertyChanged', type, propName, propValue)
);

rosterUpdate

用户列表更新

RtcMessage.getInstance().on(
  RtcMessage.Events.messageReceived,
  ({ from: string, message: any }) => {
    console.log('messageReceived', from, message);
  }
);

sessionReady

当实例连接到服务器时触发

sessionClosed

当前实例被关闭时触发

serviceStateChanged

服务连接状态变化

RtcMessage.getInstance().on(
  RtcMessage.Events.serviceStateChanged,
  ({ isConnected: boolean, reason: StatusCode }) => {
    console.log('serviceStateChanged', isConnected, reason);
  }
);

topicMessageReceived

当订阅了某个主题的消息之后,收到在该主题下发布的消息

RtcMessage.getInstance().on(
  RtcMessage.Events.topicMessageReceived,
  (topic: string, from: string, message: any) => console.log(topic, from, message)
);

userJoin

用户加入

RtcMessage.getInstance().on(
  RtcMessage.Events.userJoin,
  (userId: string) => {
    console.log('userJoin', userId);
  }
);

userLeave

用户离开

RtcMessage.getInstance().on(
  RtcMessage.Events.userLeave,
  (userId: string) => {
    console.log('userLeave', userId);
  }
);

userUpdate

用户信息更新,如用户名,用户数据等

RtcMessage.getInstance().on(
  RtcMessage.Events.userUpdate,
  (userId: string) => {
    console.log('userUpdate', userId);
  }
);
Last updated on 1/13/2022
← RtcWhiteboardRtsService →
  • 简介
  • Properties
    • sessionProperty
  • Accessors
    • isConnected
  • Methods
    • broadcastMessage
    • getRoster
    • joinSession
    • leave
    • off
    • on
    • publishTopicMessage
    • sendMessage
    • setProperty
    • subscribeTopic
    • updateUserData
    • unsubscribeTopic
    • getInstance
  • Events
    • messageReceived
    • propertyChanged
    • rosterUpdate
    • sessionReady
    • sessionClosed
    • serviceStateChanged
    • topicMessageReceived
    • userJoin
    • userLeave
    • userUpdate
浙ICP备20002645号 ©2019-2021 Pano拍乐云