自定义房间信令

更新时间: 2024/09/02 15:10:23

本文主要介绍如何通过 NERoom SDK 实现自定义房间信令的收发,后续用户实现实时字幕展示。

发送自定义房间信令

可以通过客户端和 服务端 API 实现自定义房间信令的发送。

本文主要介绍如何通过客户端 API 发送自定义房间信令。

给目标用户发送自定义信令

调用 sendCustomMessage 方法给目标用户发送自定义消息,包括房间内/房间外消息。

cpp/**
 * @brief 给房间内的[userUuid]发送自定义消息,如房间内信令
 * @param roomUuid 房间ID
 * @param userUuid 发送目标用户ID
 * @param commandId 消息类型
 * @param data 自定义的消息内容
 * @param callback 回调函数
 * @return void
 */
virtual void sendCustomMessage(const std::string& roomUuid,
    const std::string& userUuid,
    int commandId,
    const std::string& data,
    const NEMessageCallback& callback) = 0;
neroom::INEMessageChannelService* service = nullptr;
/// 检查INEMessageChannelService对象是否存在
    auto roomkit = neroom::createNERoomKit();
    if (roomkit == nullptr || roomkit->getMessageChannelService() == nullptr) {
        Napi::TypeError::New(env, "Null pointer exception").ThrowAsJavaScriptException();
        return false;
    }
    if (service != NULL) {
        *service = roomkit->getMessageChannelService();
    }else{
        return false;    
    }

service->sendCustomMessage(roomUuid, userUuid, commandId, data, [=](int code, const std::string& msg) {
    }

接收自定义房间信令

  1. 调用如下接口添加自定义房间信令接收的监听。

    cpp/**
    * @brief 添加消息监听
    * @param listener 消息监听对象 {@link INEMessageChannelListener}
    * @return void
    */
    virtual void addMessageChannelListener(INEMessageChannelListener* listener) = 0;
    
  2. 调用如下接口实现自定义房间信令的接收,并处理接收到的自定义房间信令。

    cpp//处理接收到的消息
    neroom::INEMessageChannelService* service = neroom::createNERoomKit()->getMessageChannelService();
    INERoomMessageChannelListener* listener = new INERoomMessageChannelListener(fn);
    INERoomMessageChannelListener::INERoomMessageChannelListener(const Napi::Function& fn) {
        callback = new INERoomMessageChannelListenerCallback(fn);
    }
    
    INERoomMessageChannelListener::~INERoomMessageChannelListener() {}
    
    void INERoomMessageChannelListener::onCustomMessageReceived(const neroom::NECustomMessage& message) {
        callback->onCustomMessageReceived(message);
    }
    
此文档是否对你有帮助?
有帮助
去反馈
  • 发送自定义房间信令
  • 接收自定义房间信令