在集成AUI Kits后,如果您需要实现弹幕、送礼、电商购物车等个性化功能,需要自定义互动消息。本文通过观众给主播送礼物举例介绍自定义互动消息的全链路流程。
操作步骤
- 自定义消息体。
自定义观众给主播送礼物的业务字段,如下所示:
@MessageType(30001) public class GiftModel implements Serializable { public String id; //礼物ID public String name; //礼物名称 public String description; //礼物描述 public String imageUrl; //礼物图片地址 }
说明@MessageType
为自定义消息类型,规则如下:- 消息类型取值必须大于10000,否则会报错;消息类型取值小于等于10000为互动消息SDK的内部保留类型。
- 消息类型不能与其他自定义消息的类型重复,其他消息类型请参见com.aliyun.aliinteraction.roompaas.message.model包下的实体类,当前AUI所有自定义消息实体均在此包下。
- 消息体不需要携带发送者ID和昵称,互动消息SDK会在所有消息接收的回调中默认添加这些字段,不需要在此重复添加。
- 发送消息。
- 接收消息。
- 上层调用。
- 观众端
GiftModel model = new GiftModel(); model.id = "<礼物ID>"; model.name = "<礼物名称>"; model.description = "<礼物描述>"; model.imageUrl = "<礼物图片地址>"; getMessageService().sendGift(model, getAnchorId(), null);
说明getAnchorId
是BaseComponent
中的基类方法,所有子Component均可直接调用。 - 主播端
getMessageService().addMessageListener(new SimpleOnMessageListener() { @Override public void onGiftReceived(Message<GiftModel> message) { String senderId = message.senderId; String senderNick = message.senderInfo.userNick; GiftModel giftModel = message.data; showToast(String.format("%s给你送来了%s", senderNick, giftModel.name)); } });
- 观众端