点赞
本文介绍如何发送点赞和接收点赞消息。
说明
点赞操作会在内部进行合流操作,用于支持用户连续点赞。合流操作会发送一定时间段内的所有点赞数给服务端。
API使用示例
iOS:
id<AIRBRoomChannelProtocol> room = [[AIRBRoomEngine sharedInstance] getRoomChannelWithRoomID:@"xxx"]
[room.chat sendLike];
Android:
// 内部会做调用优化
chatService.sendLike();
Web:
chatService.sendLike()
Windows:
auto room_ptr = alibaba::meta_space::MetaSpace::GetInstance()->GetRoomInstance(room_id);
std::shared_ptr<IChat> chat_plugin = std::dynamic_pointer_cast<IChat>(room_ptr->GetPlugin(PluginChat));
chat_plugin->SendLike([]() {
}, [](const alibaba::dps::DPSError& err) {
});
接收点赞消息通知的API使用示例
iOS:
// 需要设置AIRBRoomChannelProtocol的delegate并实现以下方法,监听如下事件,解析JSON内容
- (void) onAIRBRoomChannelEvent:(AIRBRoomChannelEvent) event info:(NSDictionary*)info
{
case AIRBRoomChannelEventMessageReceived: {
AIRBRoomChannelMessageType type = [[info valueForKey:@"type"] intValue];
switch (type)
{
case AIRBRoomChannelMessageTypeChatLikeReceived:
{
NSData *turnData = [[info valueForKey:@"data"] dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:turnData options:NSJSONReadingMutableLeaves error:nil];
NSLog(@"收到点赞数:%@", [[dataDic valueForKey:@"likeCount"] intValue]);
}
break;
... ...
}
Android:
chatService.addEventHandler(new SampleChatEventHandler() {
@Override
public void onLikeReceived(LikeEvent event) {
// 监听到点赞信息
}
});
Web:
// 获取事件列表
const { EventNameEnum } = window.RoomPaasSdk
// 监听点赞消息通知
chatService.on(EventNameEnum.PaaSChatReciveLike, (event) => {
console.log(event.data)
})
Windows:
//继承ChatEventListener,并重写OnLikeCountChange方法
virtual void OnLikeCountChange(const LikeEventModel& event) override {
}