实现聊天消息

更新时间: 2022/11/04 10:02:17

本文介绍如何通过 NERoom 实现文字聊天消息和礼物消息。更多内容可参考NERoom房间消息发送NERoom房间消息接收

发送和接收文字聊天消息

主唱、合唱者和观众在房间内可以发送和接收在线聊天消息,示例代码如下:

  1. 发送文本消息。

    NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
    NERoomContext roomContext = roomService.getRoomContext(roomUuid);
    if (roomContext!=null){
        String message="This is a text massage";
        roomContext.getChatController().sendBroadcastTextMessage(message, new NECallback2<Unit>() {
            @Override
            public void onSuccess(@Nullable Unit unit) {
                super.onSuccess(unit);
                Log.d(TAG,"success");
            }
    
            @Override
            public void onError(int code, @Nullable String message) {
                super.onError(code, message);
                Log.d(TAG,"error");
            }
        });
    }
    
  2. 接收消息。

    NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
    NERoomContext roomContext = roomService.getRoomContext(roomUuid);
    if (roomContext != null) {
        roomContext.addRoomListener(new NERoomListener() {
            // 其他回调方法
            // ...
    
            @Override
            public void onReceiveChatroomMessages(@NonNull List<? extends NERoomChatMessage> messages) {
                for (NERoomChatMessage message : messages) {
                    if (message instanceof NERoomChatTextMessagee){
                        Log.d(TAG,"text:"+((NERoomChatTextMessage) message).getText());
                    }
                }
            }
        });
    }
    

发送和接收礼物消息

观众在房间内可以发送礼物给主唱或合唱者,可通过发送自定义的消息来实现。发送端需要在自定义消息中携带礼物Id,其他端在接收到礼物消息后解析出礼物Id,并播放对应动效。 发送和接收礼物消息的示例代码如下:

  1. 发送礼物消息。

    您可以通过 IM 的自定义消息,实现发送礼物消息,请自行实现相关业务逻辑。可参考 IM聊天室消息

  2. 接收礼物消息。

    NERoomService roomService = NERoomKit.getInstance().getService(NERoomService.class);
    NERoomContext roomContext = roomService.getRoomContext(roomUuid);
    if (roomContext != null) {
        roomContext.addRoomListener(new NERoomListener() {
            @Override
            public void onReceiveChatroomMessages(@NonNull List<? extends NERoomChatMessage> messages) {
                for (NERoomChatMessage message : messages) {
                    if (message instanceof NERoomChatCustomMessage){
                        // 解析出礼物Id
                        final String giftId = ((NERoomChatCustomMessage) message).getAttachStr();
                        // ToDo: 可以在这里播放礼物动画
                    }
                }
            }
        });
    }
    
此文档是否对你有帮助?
有帮助
去反馈
  • 发送和接收文字聊天消息
  • 发送和接收礼物消息