// // QXRoomMessageManager.h // QXLive // // Created by 启星 on 2025/6/10. // #import #import "QXRoomChatListView.h" #import "QXRoomModel.h" #import "QXRoomFriendRelationModel.h" #import "QXRedPacketModel.h" typedef NS_ENUM(NSInteger) { /// 清空消息 QXRoomMessageTypeClearMessage = 123, /// 歌词同步 QXRoomMessageTypeSongLrc = 124, /// pk屏蔽远端声音 QXRoomMessageTypeMuteRemoteAudio = 125, /// 关闭自己声音 QXRoomMessageTypeMuteLocalAudio = 126, /// 基础文本消息类型 QXRoomMessageTypeText = 1, /// 基础表情类型 QXRoomMessageTypeEmoji = 2, /// 系统消息 QXRoomMessageTypeSystem = 1000, /// 用户进入房间 QXRoomMessageTypeJoin = 1001, /// 用户退出房间 QXRoomMessageTypeQuit = 1002, /// 用户上麦 QXRoomMessageTypeUpSeat = 1003, /// 用户下麦 QXRoomMessageTypeDownSeat = 1004, /// 房间收到礼物 QXRoomMessageTypeGift = 1005, /// 设置管理员 QXRoomMessageTypeSetManage = 1006, /// 设置主持 QXRoomMessageTypeSetCompere = 1007, /// 禁麦/解禁 QXRoomMessageTypeSeatMute = 1008, /// 锁麦/解除锁麦 QXRoomMessageTypeSeatLock = 1009, /// 踢出房间 QXRoomMessageTypeTakeOff = 1011, /// 房间类型发生变化 QXRoomMessageTypeRoomTypeChanged = 1012, /// 点歌/切歌/同意点歌 QXRoomMessageTypeSwicthSong = 1013, /// 上麦模式发生变化 自由麦 | 排麦 QXRoomMessageTypeAplayPitModeDidChanged = 1014, /// pk房数值变化 QXRoomMessageTypePKValueDidChanged = 1015, /// 用户 禁言|禁麦 ,解除禁言|解除禁麦 QXRoomMessageTypeRoomUserMute = 1016, /// 管理员被删除 QXRoomMessageTypeManagerIsDelete = 1017, /// 主持人被删除 QXRoomMessageTypeCompereIsDelete = 1018, /// 点唱时魅力排行榜发生变化 QXRoomMessageTypeCharmRankList = 1019, /// 房间信息发生变化是推送 QXRoomMessageTypeRoomInfoChanged = 1020, /// 清除魅力 QXRoomMessageTypeRoomClearCharm = 1021, /// 拍卖者上麦 QXRoomMessageTypeRoomAuctionUpSeat = 1022, /// 拍卖开始 开始倒计时 QXRoomMessageTypeRoomAuctionStart = 1023, /// 竞拍麦位发生变化 QXRoomMessageTypeRoomAuctionPitChanged = 1024, /// 竞拍结束 QXRoomMessageTypeRoomAuctionEnd = 1025, /// 竞拍主持延时 QXRoomMessageTypeRoomAuctionDelayTime = 1026, /// 拍卖类型发生变化 QXRoomMessageTypeRoomAuctionTypeDidChanged = 1027, /// 私密小屋 QXRoomMessageTypeRoomCabinRoomValueChanged = 1028, /// 有人向我发起pk QXRoomMessageTypeRoomRecieveInvitePk = 1029, /// 拒绝或接受pk QXRoomMessageTypeRoomPKAgreeOrRefuse = 1030, /// pk开始 QXRoomMessageTypeRoomPKStart = 1031, /// pk结束 惩罚时间 QXRoomMessageTypeRoomPKEnd = 1032, /// pk断开 QXRoomMessageTypeRoomPKDisconnect = 1033, /// 排麦人数发生变化 QXRoomMessageTypeRoomInLineNumber = 1034, /// 用户信息发生变化时推送 QXRoomMessageTypeRoomUserInfoDidChanged = 1035, /// 房间人数校正 QXRoomMessageTypeRoomOnlineNumber = 1036, /// pk惩罚阶段失败方想跑路需要胜利方的同意 QXRoomMessageTypeRoomPkNeedAgree = 1037, /// 房间盲盒开礼物文字消息 QXRoomMessageTypeRoomBlindBox = 1038, /// 房间内换麦 QXRoomMessageTypeRoomDidFire = 1039, /// 交友房阶段发生变化 QXRoomMessageTypeRoomFriendPartDidChanged = 1049, /// 交友房时间发生延时 QXRoomMessageTypeRoomFriendDelayTime = 1050, /// 交友房卡关系完成 QXRoomMessageTypeRoomFriendCreateRelation = 1051, /// 私密小屋结束时间发生延时 QXRoomMessageTypeCabinTimeDelay = 1052, /// 麦位发生变化 QXRoomMessageTypeSeatDidChanged = 1053, /// 心动值发生变化 QXRoomMessageTypeHeartDidChanged = 1054, /// 交友房私密小屋有人退出房间 QXRoomMessageTypeFriendRoomQuit = 1055, /// 巡乐会盘进度更新 QXRoomMessageTypeMeetActivityProgressUpdate = 1056, /// 巡乐会盘抽奖结果更新 QXRoomMessageTypeMeetActivityDrawGift = 1057, /// 离线 QXRoomMessageTypeRoomUserOnlineStatus = 1058, /// 清除个人魅力 QXRoomMessageTypeRoomClearUserCharm = 1059, /// 发红包 QXRoomMessageTypeSendRedpacket = 1060, /// 红包已被抢完 QXRoomMessageTypeRedpacketFinished = 1061, }QXRoomMessageType; NS_ASSUME_NONNULL_BEGIN @protocol QXRoomMessageManagerDelegate @optional /// 插入消息 -(void)didInsertMessge:(QXRoomChatListModel*)message; /// 根据用户userid 插入消息 -(void)didInsertMessge:(QXRoomChatListModel*)message userId:(NSString*)userId; /// 上下麦 -(void)didUpDownSeatWithUser:(QXUserHomeModel*)user isUpSeat:(BOOL)isUpSeat pit_number:(NSInteger)pit_number isPK:(BOOL)isPK; /// 上麦模式发生变化 2 自由麦 | 1 排麦 -(void)aplayPitModeDidChanged:(NSString*)upMicType; /// 排麦人数发生变化 -(void)aplayMicInLineNumberDidChanged:(NSString*)number; /// 清空消息 -(void)didClearAllMessage; /// 有人发起点歌 -(void)applySongWaitAgreeWithUserNickname:(NSString*)nickname; /// 主持人拒绝点歌 -(void)applySongNoAgreeWithUserId:(NSString*)userId; /// 下一首歌状态发生变化 -(void)nextSongDidChangedWithNextSong:(QXSongListModel*)nextInfo; /// 切歌 -(void)nextSongDidStartWithSongInfo:(QXSongListModel*)songInfo nextInfo:(QXSongListModel*)nextInfo; /// 点歌房魅力发生变化 -(void)songRoomCharmRankListDidChanged:(NSArray*)list; /// 房间内用户信息发生变化 -(void)roomUserInfoDidChanged:(QXUserHomeModel *)user; /// 房间状态发生变化 -(void)roomTypeDidChanged; /// 房间歌词 - (void)roomSongLrcProgress:(NSUInteger)progress; /// 房间信息发生变化 - (void)roomInfoDidChanged:(QXRoomInfoModel*)roomInfo; /// 房间管理员/主持人状态发生变化 isManager 是为管理员 否为主持 isAdd 是为添加 否为删除 - (void)roomSetManagerOrCompere:(QXUserHomeModel*)userInfo isManager:(BOOL)isManager isAdd:(BOOL)isAdd; /// 踢出房间 -(void)userDidTakeOffWithUserInfo:(QXUserHomeModel*)userInfo; /// 清除魅力 -(void)roomClearCharm; /// 收到礼物 -(void)didRecieveGiftWithWithUserInfo:(QXUserHomeModel*)userInfo; /// 收到多条礼物 -(void)didRecieveGiftWithWithUserInfos:(NSArray*)userInfos; /// 用户禁言禁麦状态发生变化 -(void)userMuteStatusDidChanged:(QXUserHomeModel*)userInfo isMute:(NSString*)isMute isMutePit:(NSString*)isMutePit; /// 麦位状态发生变化 -(void)roomSeatStatusDidChangedIsLock:(NSString*)is_lock pit_number:(NSString*)pit_number; /// 用户进出房间 -(void)roomOnlineNumberDidChangedIsAdd:(BOOL)isAdd; /// 10秒自动校正在线人数 -(void)roomOnlineNumberDidChangedOnlineNumber:(NSString*)onlineNumber; /// 房间换麦 -(void)roomSeatExchangedWithFromPitNumber:(NSInteger)fromPitNumber toPitNumber:(NSInteger)toPitNumber userInfo:(QXUserHomeModel*)userInfo isPK:(BOOL)isPK; /// 拍卖者被拉上麦 -(void)auctionUpSeatWithUserInfo:(QXUserHomeModel*)userInfo isUpSeat:(BOOL)isUpSeat; /// 拍卖者列表发生变化 -(void)auctionListDidChanged:(NSArray*)auctionList; /// 拍卖状态发生变化 -(void)auctionStartOrEndIsStart:(BOOL)isStart user:(QXRoomAuctionUser *)user getUser:(QXRoomAuctionUser*)getUser; /// 拍卖时间延迟 -(void)auctionTimeDelayWithEndTime:(NSString*)endTime; /// 拍卖类型发生变化 -(void)auctionTypeDidChanged:(NSString*)type; /// 私密小屋心动值发生变化 -(void)cabinRoomValueDidChanged:(NSString*)hotValue; /// 收到pk邀请 -(void)recievePKInviteWithSendRoomId:(NSString*)SendRoomId AcceptRoomId:(NSString*)AcceptRoomId PkId:(NSString*)PkId message:(NSString*)message; /// 同意或拒绝pk邀请 user_id 与 room_id 为对方 -(void)agreeOrRefusePKIsAgree:(BOOL)isAgree user_id:(NSString*)user_id room_id:(NSString*)room_id pk_id:(NSString*)pk_id; /// pk开始 -(void)pkStartWithPkEndTimes:(NSString*)pk_end_times pk_id:(NSString*)pk_id; /// pk值发生变化 room_id_a发起者房间id create_value_a 发起者房间pk值 room_id_b 接收者房间id receive_value_b接受者房间pk值 -(void)roomPKValueDidChangedWithRoomIdA:(NSString*)room_id_a create_value_a:(NSString*)create_value_a room_id_b:(NSString*)room_id_b receive_value_b:(NSString*)receive_value_b; /// pk结果 isVictory 0 负 1 胜 2平 -(void)pkResultWithIsVictory:(NSInteger)isVictory end_time:(NSString*)end_time victory_name:(NSString*)victory_name victory_cover:(NSString*)victory_cover defeated_name:(NSString*)defeated_name defeated_cover:(NSString*)defeated_cover; /// pk断开 -(void)pkDisConnect; /// 是否屏蔽ok远端声音 -(void)pkMuteRemoteAudio:(BOOL)isMute fromUserInfo:(QXUserHomeModel*)fromUserInfo; /// 惩罚阶段败方想跑路 胜方收到后决定要不要让他跑 -(void)roomPKRecieveLoserWantToRunRoadWithUserInfo:(QXUserHomeModel*)fromUserInfo;; /// 收到抢头条 -(void)recieveHeadline:(QXHeadLineModel*)headline; /// 查询用户状态 //-(void)getUserStatusWithUsers:(NSArray *)users; /// 交友房 /// 交友房阶段发生变化 step 阶段 1等待 2心动 3牵手 friend_id 场次id -(void)friendPartDidChangedWithType:(NSString*)step friend_id:(NSString*)friend_id end_time:(NSString*)end_time relationModel:(QXRoomFriendRelationModel*)relationModel; /// 交友房时间发生延时 end_time 截止时间 -(void)friendTimeDelayWithTime:(NSString*)end_time; /// 交友房麦位发生变化 -(void)friendSeatDidChanged:(NSArray*)pitArray; /// 心动值发生变化 -(void)friendHeartNumberDidChanged:(NSArray*)heartArray; /// 关系创建完成 -(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel; /// 有人退出交友房私密小屋 -(void)friendCabinRoomIsQuit; /// 私密小屋时间发生延时 -(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time; /// 巡乐会进度更新 -(void)meetActivityProgressIsUpdate:(NSDictionary*)updateDict; /// 巡乐会礼物发生变化 -(void)meetActivityGiftInfoIsUpdate:(QXRoomChatListModel*)giftInfo; /// 清除个人魅力 -(void)roomClearUserCharmWithUserId:(NSString*)userId; /// 发红包 -(void)recievedRedPacket:(QXRedPacketModel*)model; /// 红包 -(void)redPacketDidFinished:(NSString*)redpacket_id; /// 房间用户在线状态发生变化 //-(void)roomUserOnlineStatusDidChanged:(BOOL)isOnline userId:(NSString*)userId; @end @interface QXRoomMessageManager : NSObject @property (nonatomic,weak)iddelegate; +(instancetype)shared; /// 加入房间群组 -(void)joinGroupWithRoomId:(NSString*)roomId; /// 退出房间群组 -(void)quitGroupWithRoomId:(NSString*)roomId; -(void)sendChatMessage:(NSString *)message messageType:(QXRoomMessageType)messageType needInsertMessage:(BOOL)needInsertMessage; /// 发送表情 -(void)sendChatEmoji:(QXEmojiModel *)emoji; -(void)sendC2CMessage:(NSString *)message messageType:(QXRoomMessageType)messageType userId:(NSString*)userId; @end @interface QXRoomMessage : NSObject @property (nonatomic,strong)NSString *RoomId; @property (nonatomic,strong)NSString *MsgType; @property (nonatomic,strong)NSDictionary *Text; @end NS_ASSUME_NONNULL_END