在你的音视频应用中,当你需要从业务服务端,向指定 RTC 房间内指定的一个应用客户端发送消息时,你可以使用 SendRoomUnicast 这个 OpenAPI 实现这一功能。

接口行为

你可以调用 SendRoomUnicast 接口,指定你所属的 AppId,通过服务端向指定 RoomId 的 RTC 房间内的指定 userId 的用户发送点对点消息。

注意:

  • 消息可以是文本消息,也可以是二进制消息。
  • 文本消息大小不能超过 64 KB,二进制消息大小不能超过 64 KB。

消息发送成功后,用户会通过以下回调收到该消息:

AndroidiOSWindows
文本消息onUserMessageReceivedrtcEngine:onUserMessageReceived:messageOnUserMessageReceived
二进制消息onUserBinaryMessageReceivedrtcEngine:onUserBinaryMessageReceived:messageOnUserBinaryMessageReceived
调用接口

关于调用接口的服务地址、通信协议、字符编码和签名机制,参看调用 OpenAPI。

接口限制

对于每个 AppId,调用 SendUnicast、SendRoomUnicast、SendBroadcast与BatchSendRoomUnicast的频率上限之和是 500 次每秒。

请求方式

使用 Post 方式发起请求。

请求参数

以下是接口特有的请求参数。关于其他公共请求参数,参看请求参数。

Query
参数名类型必填示例值描述
ActionString是SendRoomUnicast接口名称,本接口取值:SendRoomUnicast
VersionString是2020-12-01接口版本,本接口取值:2020-12-01
Body
参数名类型必填示例值描述
AppIdString是Your_AppId应用的唯一标志
RoomIdString是RoomId房间 ID,是房间的唯一标志
FromString是from_server_id业务服务端的唯一标识;
由你根据 调用 OpenAPI 的 ID 命名规范 自定义;
在一个 AppID 下,不能和真实用户用于实时消息通信的 user_ID 重复;
建议使用固定的 ID 的发送消息。
ToString是to_user_id消息接收用户调用 login 接口登录时设置的 ID,可用于接收房间内消息
BinaryBool是false
  • 字段为 true,发送二进制消息;
  • 字段为 false,发送文本消息。
  • MessageString是hello点对点消息内容。如果是二进制消息,需进行 base64 编码
    请求示例代码
    Query
    https://rtc.volcengineapi.com?Action=SendRoomUnicast&Version=2020-12-01
    
    postscript
    Body
    {
        "AppId": "Your_AppId",
        "From": "from_user_id",
        "To": "to_user_id",
        "RoomId" : "to_RoomId",
        "Message": "hello",
        "Binary" : true
    }
    
    json
    返回调用结果

    返回值 Result 仅在请求成功时返回消息 "success",表示服务端成功接收到消息,失败时为空。

    正常返回示例
    {
        "ResponseMetadata": {
            "RequestId": "Your_RequestId",
            "Action": "SendRoomUnicast",
            "Version": "2020-12-01",
            "Service": "rtc",
            "Region": "cn-north-1"
        },
        "Result":{
            "Message": "Success"
        }
    }
    
    json