Files
midi_ios/QXLive/Manager/QXRoomMessageManager.h

281 lines
11 KiB
C
Raw Normal View History

2025-08-14 10:07:49 +08:00
//
// QXRoomMessageManager.h
// QXLive
//
// Created by 启星 on 2025/6/10.
//
#import <Foundation/Foundation.h>
#import "QXRoomChatListView.h"
#import "QXRoomModel.h"
2025-08-22 19:02:44 +08:00
#import "QXRoomFriendRelationModel.h"
2025-08-14 10:07:49 +08:00
typedef NS_ENUM(NSInteger) {
/// 清空消息
QXRoomMessageTypeClearMessage = 123,
/// 歌词同步
QXRoomMessageTypeSongLrc = 124,
/// pk屏蔽远端声音
QXRoomMessageTypeMuteRemoteAudio = 125,
/// 关闭自己声音
QXRoomMessageTypeMuteLocalAudio = 126,
/// 基础文本消息类型
QXRoomMessageTypeText = 1,
/// 系统消息
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,
2025-09-08 08:49:04 +08:00
/// 房间内换麦
2025-08-14 10:07:49 +08:00
QXRoomMessageTypeRoomDidFire = 1039,
2025-08-22 19:02:44 +08:00
/// 交友房阶段发生变化
QXRoomMessageTypeRoomFriendPartDidChanged = 1049,
/// 交友房时间发生延时
QXRoomMessageTypeRoomFriendDelayTime = 1050,
/// 交友房卡关系完成
QXRoomMessageTypeRoomFriendCreateRelation = 1051,
/// 私密小屋结束时间发生延时
QXRoomMessageTypeCabinTimeDelay = 1052,
/// 麦位发生变化
QXRoomMessageTypeSeatDidChanged = 1053,
/// 心动值发生变化
QXRoomMessageTypeHeartDidChanged = 1054,
/// 交友房私密小屋有人退出房间
QXRoomMessageTypeFriendRoomQuit = 1055,
2025-09-08 08:49:04 +08:00
/// 巡乐会盘进度更新
QXRoomMessageTypeMeetActivityProgressUpdate = 1056,
/// 巡乐会盘抽奖结果更新
QXRoomMessageTypeMeetActivityDrawGift = 1057,
2025-09-11 18:25:41 +08:00
/// 离线
QXRoomMessageTypeRoomUserOnlineStatus = 1058,
/// 清除个人魅力
QXRoomMessageTypeRoomClearUserCharm = 1059,
2025-08-14 10:07:49 +08:00
}QXRoomMessageType;
NS_ASSUME_NONNULL_BEGIN
@protocol QXRoomMessageManagerDelegate <NSObject>
@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;
/// 上麦模式发生变化 2 自由麦 | 1 排麦
-(void)aplayPitModeDidChanged:(NSString*)upMicType;
/// 排麦人数发生变化
-(void)aplayMicInLineNumberDidChanged:(NSString*)number;
/// 清空消息
-(void)didClearAllMessage;
2025-09-08 08:49:04 +08:00
2025-08-14 10:07:49 +08:00
/// 有人发起点歌
-(void)applySongWaitAgreeWithUserNickname:(NSString*)nickname;
/// 主持人拒绝点歌
-(void)applySongNoAgreeWithUserId:(NSString*)userId;
/// 下一首歌状态发生变化
-(void)nextSongDidChangedWithNextSong:(QXSongListModel*)nextInfo;
/// 切歌
-(void)nextSongDidStartWithSongInfo:(QXSongListModel*)songInfo nextInfo:(QXSongListModel*)nextInfo;
/// 点歌房魅力发生变化
-(void)songRoomCharmRankListDidChanged:(NSArray<QXRoomPitModel *>*)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;
2025-09-19 11:38:43 +08:00
/// 收到多条礼物
-(void)didRecieveGiftWithWithUserInfos:(NSArray<QXUserHomeModel*>*)userInfos;
2025-08-14 10:07:49 +08:00
/// 用户禁言禁麦状态发生变化
-(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;
2025-09-08 08:49:04 +08:00
/// 房间换麦
2025-09-22 14:58:13 +08:00
-(void)roomSeatExchangedWithFromPitNumber:(NSInteger)fromPitNumber toPitNumber:(NSInteger)toPitNumber userInfo:(QXUserHomeModel*)userInfo;
2025-08-14 10:07:49 +08:00
/// 拍卖者被拉上麦
-(void)auctionUpSeatWithUserInfo:(QXUserHomeModel*)userInfo isUpSeat:(BOOL)isUpSeat;
/// 拍卖者列表发生变化
-(void)auctionListDidChanged:(NSArray<QXRoomPitModel *>*)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;
/// 查询用户状态
2025-08-22 19:02:44 +08:00
//-(void)getUserStatusWithUsers:(NSArray <NSString*>*)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<QXRoomPitModel*>*)pitArray;
/// 心动值发生变化
-(void)friendHeartNumberDidChanged:(NSArray<QXRoomFriendHeartListModel*>*)heartArray;
/// 关系创建完成
-(void)friendRelationIsCreatedWithrelationModel:(QXRoomFriendRelationModel*)relationModel;
/// 有人退出交友房私密小屋
-(void)friendCabinRoomIsQuit;
/// 私密小屋时间发生延时
-(void)friendCabinRoomTimeDelayWithTime:(NSString*)end_time;
2025-08-14 10:07:49 +08:00
2025-09-08 08:49:04 +08:00
/// 巡乐会进度更新
-(void)meetActivityProgressIsUpdate:(NSDictionary*)updateDict;
/// 巡乐会礼物发生变化
-(void)meetActivityGiftInfoIsUpdate:(QXRoomChatListModel*)giftInfo;
2025-09-11 18:25:41 +08:00
/// 清除个人魅力
-(void)roomClearUserCharmWithUserId:(NSString*)userId;
/// 房间用户在线状态发生变化
//-(void)roomUserOnlineStatusDidChanged:(BOOL)isOnline userId:(NSString*)userId;
2025-08-14 10:07:49 +08:00
@end
@interface QXRoomMessageManager : NSObject
@property (nonatomic,weak)id<QXRoomMessageManagerDelegate>delegate;
+(instancetype)shared;
2025-09-11 18:25:41 +08:00
/// 加入房间群组
2025-08-14 10:07:49 +08:00
-(void)joinGroupWithRoomId:(NSString*)roomId;
2025-09-11 18:25:41 +08:00
/// 退出房间群组
2025-08-14 10:07:49 +08:00
-(void)quitGroupWithRoomId:(NSString*)roomId;
-(void)sendChatMessage:(NSString *)message messageType:(QXRoomMessageType)messageType needInsertMessage:(BOOL)needInsertMessage;
-(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