实现礼物(基于NERoom )
更新时间: 2024/11/26 15:44:05
本文介绍语聊房 Demo 中如何实现发送礼物、接收礼物。
功能介绍
礼物在语聊房场景中是非常重要的功能,它可以让用户之间更加亲密,提高用户留存率。
礼物的实现流程如下图所示。
sequenceDiagram
autonumber
participant DemoClient as 客户端
participant VoiceRoomKit as 语聊房业务代码(开源)
participant DemoServer as Nemo服务端
participant NERoomServer as NERoom 服务端
participant NERoomSDK as NERoomSDK
DemoClient->>VoiceRoomKit: sendBatchGift
VoiceRoomKit->>DemoServer: 调用 Nemo 服务端的打赏API<br>nemo/entertainmentLive/live/batch/reward
DemoServer->>DemoServer: 记录打赏数据,自行实现计费相关逻辑
DemoServer->>NERoomServer: 调用NERoom服务端的发送聊天室自定消息接口
NERoomServer->>NERoomSDK: 发送消息
NERoomSDK-->>NERoomServer: 发送消息成功
NERoomServer-->>DemoServer: 消息发送成功
DemoServer-->>VoiceRoomKit: 礼物发送成功
VoiceRoomKit-->>DemoClient: 返回打赏成功
NERoomSDK -->> VoiceRoomKit: onReceiveMessage
VoiceRoomKit -->> DemoClient: 监听打赏消息(onReceiveBatchGift)
DemoClient -->> DemoClient: 更新UI、特效等
语聊房 Demo 中的礼物功能,只是礼物赠送流程的展示,并不提供支付体系、结算体系、风控体系的相关指导,请自行实现相关业务逻辑。
NERoom 服务端的发送聊天室自定消息默认为高优先级消息,保障礼物消息被高优先级发送。
发送礼物
客户端调用 sendBatchGift
接口发送批量礼物。
该接口为语聊房业务代码(开源)封装的一个接口,具体可以参考语聊房 Demo 源码。
示例代码
NEVoiceRoomKit.getInstance().sendBatchGift(giftId, giftCount: giftCount, userUuids: ["用户id"]) { code, msg, _ in
if code != 0 {
print("发送礼物失败 code:\(code) msg:\(msg)")
}
}
收到礼物消息
客户端监听 onReceiveBatchGift
回调,接收礼物消息。
示例代码
func addListener() {
NEVoiceRoomKit.getInstance().addVoiceRoomListener(self)
}
func onReceiveBatchGift(giftModel: NEVoiceRoomBatchGiftModel) {
print("收到礼物")
}
此文档是否对你有帮助?