在集成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)); } });
- 觀眾端