你可以在客户端和业务服务器发送、接收文本信息或二进制消息。通过调用接口,主动发送消息。消息发送成功后,目标客户端会接收到包含消息的回调,服务端会接收到来自 RTC 服务器的 HTTP/HTTPS POST 请求。
参考 跑通 RTS 快速开始 Demo 实现前置步骤。
客户端可以向业务服务器发送文本或二进制消息。可用于客户端向业务服务器同步状态、上报数据等场景。
setServerParams 设置业务服务器参数,包括业务服务器地址和签名。其中,签名将用于构建 HTTP/HTTPS POST 请求,该请求包含了消息内容。RTC 不会校验签名内容,因此,签名应按照业务服务器的要求生成。sendServerMessage 或 sendServerBinaryMessage 发送文本消息或二进制消息。| 客户端接口 | Android | iOS | Web |
|---|---|---|---|
| 设置业务服务器参数 | setServerParams | setServerParams:url: | setServerParams |
| 客户端给业务服务器发送文本消息(P2Server) | sendServerMessage | sendServerMessage: | sendServerMessage |
| 客户端给业务服务器发送二进制消息(P2Server) | sendServerBinaryMessage | sendServerBinaryMessage: | sendServerBinaryMessage |
客户端通过上述接口成功发送消息后,业务服务器将通过来自 RTC 服务器的 HTTP/HTTPS POST 请求收到消息,示例如下:
注意:RTC 服务器向业务服务器发送的
POST请求,其请求头中不携带content-type: application/json,业务服务器在接收回调时需要注意适配处理。
{"message":"xxxx","binary":false,"signature":"00160af4c8dcb758d00ce35adb3EQD24BQDeruMYfoMjmEDAGh5ZiAARgps6T5ZgcTz9bw5DewuRkzxBmTgnGEk+ZBv3mW5n58="}
以上示例所含字段解释如下:
| 字段名 | 含义 | 类型 | 合法性 |
|---|---|---|---|
message | 消息内容 | string | / |
binary | 是否二进制 | bool | 非空 |
signature | 签名是在客户端调用 setServerParams 时设置的。你可以使用发送用户的用户 ID、 AppID 等信息生成签名,用于业务服务器校验。 | string | 非空 |
业务服务器可以向已登录或已进房的用户发送消息。可用于业务服务器向客户端同步状态、广播公告等场景。
业务服务器可以通过 SendRoomUnicast 或 BatchSendRoomUnicast 接口向 RTC 房间内指定用户发送文本或二进制消息,已进房的 RTC 用户可以通过以下回调接收消息。
注意
RTS SDK 不支持接收服务端发送的房间内点对点消息。
业务服务器可以通过 SendUnicast 接口向房间外指定用户发送文本或二进制消息,已登录用户可以通过以下回调接收消息。
| 客户端回调 | Android | iOS | Web |
|---|---|---|---|
| 接收到业务服务器发送的点对点文本消息内容 | onMessageReceived | rtsEngine:onMessageReceived:message: | onMessageReceived |
| 接收到业务服务器发送的点对点二进制消息内容 | onBinaryMessageReceived | rtsEngine:onBinaryMessageReceived:message: | onBinaryMessageReceived |
业务服务器可以通过 SendBroadcast 接口向客户端发送房间内文本或二进制广播消息,已进房用户可以通过以下回调接收消息。
说明
用户通过 joinRoom 进入房间之后,才能收到房间内广播消息。
| 客户端回调 | Android | iOS | Web |
|---|---|---|---|
| 接收到业务服务器发送的房间内文本广播消息内容 | onRoomMessageReceived | rtsRoom:onRoomMessageReceived:message: | onMessageReceived |
| 接收到业务服务器发送的房间内二进制广播消息内容 | onRoomBinaryMessageReceived | rtsRoom:onRoomBinaryMessageReceived:message: | onBinaryMessageReceived |