PLVChatroomManager
@interface PLVChatroomManager : NSObject
/// 委托代理
@property (nonatomic, weak) id<PLVChatroomManagerProtocol> delegate;
/// 当前场次ID,需在Demo层进行设置,并监听数据变化实时更新
@property (nonatomic, copy) NSString * _Nullable sessionId;
/// 当前登陆用户是否是特殊身份(譬如讲师),默认为NO,为YES时字段banned永远为NO
@property (nonatomic, assign) BOOL specialRole;
/// socket处于已连接且登陆成功的状态时为YES,默认为NO
@property (nonatomic, assign, readonly) BOOL online;
/// 聊天室是否被关闭,默认为NO
@property (nonatomic, assign, readonly) BOOL closeRoom;
/// 当前登陆用户是否被禁言,默认为NO
@property (nonatomic, assign, readonly) BOOL banned;
/// 单例方法
+ (instancetype)sharedManager;
/// 发送提问消息
/// @param content 提问的文本内容
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendQuesstionMessage:(NSString *)content;
/// 发送自定义消息
/// @param message 自定义消息数据模型
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendCustonMessage:(PLVCustomMessage *)message;
/// 发送文本消息,默认不需要回调msgId
/// @param message 文本消息数据模型
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendSpeakMessage:(PLVSpeakMessage *)message;
/// 发送文本消息
/// @param message 文本消息数据模型
/// @param needIdCallback 是否需要回调msgId
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendSpeakMessage:(PLVSpeakMessage *)message
needIdCallback:(BOOL)needIdCallback;
/// 发送文本消息
/// @param message 文本消息数据模型
/// @param replyMsgId 回复消息ID(非回复消息该字段为nil),仅在属性specialRole为YES时生效
/// @param needIdCallback 是否需要回调msgId
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendSpeakMessage:(PLVSpeakMessage *)message
replyMsgId:(NSString * _Nullable)replyMsgId
needIdCallback:(BOOL)needIdCallback;
/// 发送文本消息
/// @param message 文本消息数据模型
/// @param replyMsgId 回复消息ID(非回复消息该字段为nil),仅在属性specialRole为YES时生效
/// @param needIdCallback 是否需要回调msgId
/// @param callback 回调
/// @return 发送结果,成功为YES,失败为NO
- (BOOL)sendSpeakMessage:(PLVSpeakMessage *)message
replyMsgId:(NSString * _Nullable)replyMsgId
needIdCallback:(BOOL)needIdCallback
callback:(void (^ _Nullable)(NSString *msgId))callback;
/// 发送图片消息
/// 发送结果通过delegate通知
/// @param message 图片消息数据模型
- (void)sendImageMessage:(PLVImageMessage *)message;
/// 发送点赞,新增点赞次数为1
/// 调用该方法之后,内部会进行数据累计,每5s发送一次socket消息,每30s发送一次http统计
- (void)sendLikeEvent;
/// 发送点赞
/// 调用该方法之后,内部会进行数据累计,每5s发送一次socket消息,每30s发送一次http统计
/// @param count 新增点赞次数
- (void)sendLikeEvent:(NSInteger)count;
/// 发送禁言消息,讲师端专用接口
/// @param banned YES-禁言 NO-取消禁言
/// @param userId 被禁言/取消禁言的用户ID
- (BOOL)sendBandMessage:(BOOL)banned bannedUserId:(NSString *)userId;
/// 发送踢人消息,讲师端专用接口
/// @param userId 被踢出的用户ID
- (BOOL)sendKickMessageWithUserId:(NSString *)userId;
/// 发送全体禁言、解禁消息,讲师端专用接口
/// @param closeRoom YES:全体禁言;NO:全体解禁
- (BOOL)sendCloseRoom:(BOOL)closeRoom;
/// 开启管理器
/// @param delegate 用于设置代理,监听socket消息等
- (void)setupWithDelegate:(id<PLVChatroomManagerProtocol>)delegate channelId:(NSString *)channelId;
/// 退出前调用,用于资源释放、状态位清零
- (void)destroy;
@end
Undocumented
-
委托代理
Declaration
Objective-C
@property (nonatomic, weak, readwrite) id<PLVChatroomManagerProtocol> _Nullable delegate;
Swift
weak var delegate: PLVChatroomManagerProtocol? { get set }
-
当前场次ID,需在Demo层进行设置,并监听数据变化实时更新
Declaration
Objective-C
@property (nonatomic, copy, readwrite) NSString *_Nullable sessionId;
Swift
var sessionId: String? { get set }
-
当前登陆用户是否是特殊身份(譬如讲师),默认为NO,为YES时字段banned永远为NO
Declaration
Objective-C
@property (nonatomic, assign, unsafe_unretained, readwrite) BOOL specialRole;
Swift
var specialRole: Bool { get set }
-
socket处于已连接且登陆成功的状态时为YES,默认为NO
Declaration
Objective-C
@property (nonatomic, assign, unsafe_unretained, readonly) BOOL online;
Swift
var online: Bool { get }
-
聊天室是否被关闭,默认为NO
Declaration
Objective-C
@property (nonatomic, assign, unsafe_unretained, readonly) BOOL closeRoom;
Swift
var closeRoom: Bool { get }
-
当前登陆用户是否被禁言,默认为NO
Declaration
Objective-C
@property (nonatomic, assign, unsafe_unretained, readonly) BOOL banned;
Swift
var banned: Bool { get }
-
单例方法
Declaration
Objective-C
+ (nonnull instancetype)sharedManager;
Swift
class func shared() -> Self
-
发送提问消息
Declaration
Objective-C
- (BOOL)sendQuesstionMessage:(nonnull NSString *)content;
Swift
func sendQuesstionMessage(_ content: String) -> Bool
Parameters
content
提问的文本内容
Return Value
发送结果,成功为YES,失败为NO
-
发送自定义消息
Declaration
Objective-C
- (BOOL)sendCustonMessage:(nonnull PLVCustomMessage *)message;
Swift
func sendCustonMessage(_ message: PLVCustomMessage) -> Bool
Parameters
message
自定义消息数据模型
Return Value
发送结果,成功为YES,失败为NO
-
发送文本消息,默认不需要回调msgId
Declaration
Objective-C
- (BOOL)sendSpeakMessage:(nonnull PLVSpeakMessage *)message;
Swift
func send(_ message: PLVSpeakMessage) -> Bool
Parameters
message
文本消息数据模型
Return Value
发送结果,成功为YES,失败为NO
-
发送文本消息
Declaration
Objective-C
- (BOOL)sendSpeakMessage:(nonnull PLVSpeakMessage *)message needIdCallback:(BOOL)needIdCallback;
Swift
func send(_ message: PLVSpeakMessage, needIdCallback: Bool) -> Bool
Parameters
message
文本消息数据模型
needIdCallback
是否需要回调msgId
Return Value
发送结果,成功为YES,失败为NO
-
发送文本消息
Declaration
Objective-C
- (BOOL)sendSpeakMessage:(nonnull PLVSpeakMessage *)message replyMsgId:(NSString *_Nullable)replyMsgId needIdCallback:(BOOL)needIdCallback;
Swift
func send(_ message: PLVSpeakMessage, replyMsgId: String?, needIdCallback: Bool) -> Bool
Parameters
message
文本消息数据模型
replyMsgId
回复消息ID(非回复消息该字段为nil),仅在属性specialRole为YES时生效
needIdCallback
是否需要回调msgId
Return Value
发送结果,成功为YES,失败为NO
-
发送文本消息
Declaration
Objective-C
- (BOOL)sendSpeakMessage:(nonnull PLVSpeakMessage *)message replyMsgId:(NSString *_Nullable)replyMsgId needIdCallback:(BOOL)needIdCallback callback:(void (^_Nullable)(NSString *_Nonnull))callback;
Swift
func send(_ message: PLVSpeakMessage, replyMsgId: String?, needIdCallback: Bool, callback: ((String) -> Void)? = nil) -> Bool
Parameters
message
文本消息数据模型
replyMsgId
回复消息ID(非回复消息该字段为nil),仅在属性specialRole为YES时生效
needIdCallback
是否需要回调msgId
callback
回调
Return Value
发送结果,成功为YES,失败为NO
-
发送图片消息 发送结果通过delegate通知
Declaration
Objective-C
- (void)sendImageMessage:(nonnull PLVImageMessage *)message;
Swift
func send(_ message: PLVImageMessage)
Parameters
message
图片消息数据模型
-
发送点赞,新增点赞次数为1 调用该方法之后,内部会进行数据累计,每5s发送一次socket消息,每30s发送一次http统计
Declaration
Objective-C
- (void)sendLikeEvent;
Swift
func sendLikeEvent()
-
发送点赞 调用该方法之后,内部会进行数据累计,每5s发送一次socket消息,每30s发送一次http统计
Declaration
Objective-C
- (void)sendLikeEvent:(NSInteger)count;
Swift
func sendLikeEvent(_ count: Int)
Parameters
count
新增点赞次数
-
发送禁言消息,讲师端专用接口
Declaration
Objective-C
- (BOOL)sendBandMessage:(BOOL)banned bannedUserId:(nonnull NSString *)userId;
Swift
func sendBandMessage(_ banned: Bool, bannedUserId userId: String) -> Bool
Parameters
banned
YES-禁言 NO-取消禁言
userId
被禁言/取消禁言的用户ID
-
发送踢人消息,讲师端专用接口
Declaration
Objective-C
- (BOOL)sendKickMessageWithUserId:(nonnull NSString *)userId;
Swift
func sendKickMessage(withUserId userId: String) -> Bool
Parameters
userId
被踢出的用户ID
-
发送全体禁言、解禁消息,讲师端专用接口
Declaration
Objective-C
- (BOOL)sendCloseRoom:(BOOL)closeRoom;
Swift
func sendCloseRoom(_ closeRoom: Bool) -> Bool
Parameters
closeRoom
YES:全体禁言;NO:全体解禁
-
开启管理器
Declaration
Objective-C
- (void)setupWithDelegate:(nonnull id<PLVChatroomManagerProtocol>)delegate channelId:(nonnull NSString *)channelId;
Swift
func setup(withDelegate delegate: PLVChatroomManagerProtocol, channelId: String)
Parameters
delegate
用于设置代理,监听socket消息等
-
退出前调用,用于资源释放、状态位清零
Declaration
Objective-C
- (void)destroy;
Swift
func destroy()