PLVSocketManager
Objective-C
@interface PLVSocketManager : NSObject
Swift
class PLVSocketManager : NSObject
socket 管理类
-
是否允许使用分房间功能,优先级高于后台的配置 默认为NO,不允许
Declaration
Objective-C
@property (nonatomic) BOOL allowChildRoom;Swift
var allowChildRoom: Bool { get set } -
是否开启奖杯功能,默认关闭
Declaration
Objective-C
@property (nonatomic) BOOL getCup;Swift
var getCup: Bool { get set } -
配置私有域名 如果与默认域名相同,会自行忽略,为空使用默认域名
Declaration
Objective-C
@property (nonatomic, strong) NSString *_Nullable chatDomain;Swift
var chatDomain: String? { get set } -
可用于增加socket监听事件,为空则只监听默认事件
Declaration
Objective-C
@property (nonatomic, strong) NSSet<NSString *> *_Nullable listeningEvents;Swift
var listeningEvents: Set<String>? { get set } -
聊天室消息阈值开关,默认为关
Declaration
Objective-C
@property (nonatomic) BOOL chatMessageOnceControlEnabled;Swift
var chatMessageOnceControlEnabled: Bool { get set } -
聊天室阈值大小,默认为10
Declaration
Objective-C
@property (nonatomic) NSInteger chatMessageMaxLengthOnce;Swift
var chatMessageMaxLengthOnce: Int { get set }
-
是否是互动学堂等vclass域名的场景,默认为 NO
Declaration
Objective-C
@property (nonatomic) BOOL vclassDomain;Swift
var vclassDomain: Bool { get set } -
课程码,学生端使用课程码登录时该属性必须设置
Declaration
Objective-C
@property (nonatomic, strong) NSString *_Nullable courseCode;Swift
var courseCode: String? { get set } -
课节ID,学生端使用课节ID登录时该属性必须设置
Declaration
Objective-C
@property (nonatomic, strong) NSString *_Nullable lessonId;Swift
var lessonId: String? { get set }
-
socket 的连接状态
Declaration
Objective-C
@property (nonatomic, readonly) PLVSocketConnectStatus status;Swift
var status: PLVSocketConnectStatus { get } -
是否登录成功
Declaration
Objective-C
@property (nonatomic, readonly) BOOL login;Swift
var login: Bool { get } -
后端是否开启分房间功能 需要childRoomEnable为YES且allowChildRoom也为YES,才会真正开启分房间功能
Declaration
Objective-C
@property (nonatomic, readonly) BOOL childRoomEnable;Swift
var childRoomEnable: Bool { get } -
房间号
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSString *_Nonnull roomId;Swift
var roomId: String { get } -
登录成功后返回的 ack 字符串
Declaration
Objective-C
@property (nonatomic, copy, readonly) NSString *_Nonnull loginSuccessAckString;Swift
var loginSuccessAckString: String { get } -
socket ID
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSString *_Nonnull socketId;Swift
var socketId: String { get } -
聊天室用户类型
Declaration
Objective-C
@property (nonatomic, readonly) PLVSocketUserType userType;Swift
var userType: PLVSocketUserType { get } -
聊天室用户类型字符串
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSString *_Nonnull userTypeString;Swift
var userTypeString: String { get } -
聊天室用户连麦ID
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSString *_Nonnull linkMicId;Swift
var linkMicId: String { get } -
聊天室用户ID
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSString *_Nonnull viewerId;Swift
var viewerId: String { get } -
聊天室用户昵称
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSString *_Nonnull viewerName;Swift
var viewerName: String { get } -
聊天室用户头像url
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSString *_Nonnull avatarUrl;Swift
var avatarUrl: String { get } -
聊天室用户自定义头衔(可为空)
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSString *_Nullable actor;Swift
var actor: String? { get } -
聊天室用户自定义参数4(可为空)
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSString *_Nullable liveParam4;Swift
var liveParam4: String? { get } -
Undocumented
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSString * _Nullable chatTokenSwift
var chatToken: String? { get }
-
单例方法
Declaration
Objective-C
+ (nonnull instancetype)sharedManager;Swift
class func shared() -> Self -
登录方法,调用该方法后,自动开始获取chatToken,连接socket
Declaration
Objective-C
- (BOOL)loginWithChannelId:(nonnull NSString *)channelId viewerId:(nonnull NSString *)viewerId viewerName:(nonnull NSString *)viewerName avatarUrl:(nonnull NSString *)avatarUrl actor:(NSString *_Nullable)actor userType:(PLVSocketUserType)userType;Swift
func login(withChannelId channelId: String, viewerId: String, viewerName: String, avatarUrl: String, actor: String?, userType: PLVSocketUserType) -> BoolParameters
channelId频道号
viewerId聊天室用户ID(可用于区分用户的唯一ID)
viewerName聊天室用户昵称
avatarUrl聊天室用户头像url
actor聊天室用户自定义头衔(可为空)
userType聊天室用户类型枚举值
Return Value
YES-正常登录,NO-检查参数是否有问题或者SDK是否尚未初始化
-
socket 连接成功之后发送 login 消息进行登录
Note
这个方法仅适用于 socket 连接且登录成功之后调用Declaration
Objective-C
- (BOOL)emitLoginEvent;Swift
func emitLoginEvent() -> Bool -
登录方法,调用该方法后,可传递自定义参数并自动开始获取chatToken,连接socket
Declaration
Objective-C
- (BOOL)loginWithChannelId:(nonnull NSString *)channelId viewerId:(nonnull NSString *)viewerId viewerName:(nonnull NSString *)viewerName avatarUrl:(nonnull NSString *)avatarUrl extraParam:(NSDictionary *_Nullable)extraParam actor:(NSString *_Nullable)actor userType:(PLVSocketUserType)userType;Swift
func login(withChannelId channelId: String, viewerId: String, viewerName: String, avatarUrl: String, extraParam: [AnyHashable : Any]?, actor: String?, userType: PLVSocketUserType) -> BoolParameters
channelId频道号
viewerId聊天室用户ID(可用于区分用户的唯一ID)
viewerName聊天室用户昵称
avatarUrl聊天室用户头像url
extraParam聊天室自定义参数字典(可为空)
actor聊天室用户自定义头衔(可为空)
userType聊天室用户类型枚举值
Return Value
YES-正常登录,NO-检查参数是否有问题或者SDK是否尚未初始化
-
登出时调用
Declaration
Objective-C
- (void)logout;Swift
func logout() -
动态添加socket监听事件,注意每个相同事件只能添加一次 目前只在【互动模块】需要使用
Declaration
Objective-C
- (void)addObserveSocketEvent:(nonnull NSString *)event;Swift
func addObserveSocketEvent(_ event: String)Parameters
event事件名称
-
增加PLVSocketManagerProtocol协议的监听者
Declaration
Objective-C
- (void)addDelegate:(nonnull id<PLVSocketManagerProtocol>)delegate delegateQueue:(nonnull dispatch_queue_t)delegateQueue;Swift
func addDelegate(_ delegate: PLVSocketManagerProtocol, delegateQueue: dispatch_queue_t)Parameters
delegate待增加的监听者
delegateQueue执行回调的队列
-
移除PLVSocketManagerProtocol协议的监听者
Declaration
Objective-C
- (void)removeDelegate:(nonnull id<PLVSocketManagerProtocol>)delegate;Swift
func removeDelegate(_ delegate: PLVSocketManagerProtocol)Parameters
delegate待移除的监听者
-
移除PLVSocketManagerProtocol协议的所有监听者
Declaration
Objective-C
- (void)removeAllDelegates;Swift
func removeAllDelegates()
-
提交 socket “message” 事件消息
Declaration
Objective-C
- (BOOL)emitMessage:(nonnull id)content;Swift
func emitMessage(_ content: Any) -> BoolParameters
content消息内容,NSString 或 NSDictionary 类型
Return Value
成功-YES 失败-NO
-
提交 socket “message” 事件消息
Declaration
Objective-C
- (BOOL)emitMessage:(nonnull id)content timeout:(double)timeout callback:(nonnull void (^)(NSArray *_Nonnull))callback;Swift
func emitMessage(_ content: Any, timeout: Double, callback: @escaping ([Any]) -> Void) -> BoolParameters
content消息内容,NSString 或 NSDictionary 类型
timeout回调超时等待,默认 0
callback回调
Return Value
成功-YES 失败-NO
-
提交 socket 特定事件消息
Declaration
Objective-C
- (BOOL)emitEvent:(nonnull NSString *)event content:(nonnull id)content;Swift
func emitEvent(_ event: String, content: Any) -> BoolParameters
event事件名
content消息内容,NSString 或 NSDictionary 类型
Return Value
成功-YES 失败-NO
-
提交 socket 特定事件消息
Declaration
Objective-C
- (BOOL)emitEvent:(nonnull NSString *)event content:(nonnull id)content timeout:(double)timeout callback:(nonnull void (^)(NSArray *_Nonnull))callback;Swift
func emitEvent(_ event: String, content: Any, timeout: Double, callback: @escaping ([Any]) -> Void) -> BoolParameters
event事件名
content消息内容,NSString 或 NSDictionary 类型
timeout回调超时等待,默认 0
callback回调
Return Value
成功-YES 失败-NO
-
发送'TEACHER_SET_PERMISSION’ socket消息
Declaration
Objective-C
- (BOOL)emitPermissionMessageWithUserId:(nonnull NSString *)userId type:(PLVSocketPermissionType)type status:(BOOL)status;Swift
func emitPermissionMessage(withUserId userId: String, type: PLVSocketPermissionType, status: Bool) -> BoolParameters
userId用户Id
type权限类型
statusYES:授予权限,NO:移除权限
Return Value
成功-YES 失败-NO
-
发送'TEACHER_SET_PERMISSION’ socket消息
Declaration
Objective-C
- (BOOL)emitPermissionMessageWithUserId:(nonnull NSString *)userId type:(PLVSocketPermissionType)type status:(BOOL)status timeout:(double)timeout callback:(void (^_Nullable)(NSArray *_Nonnull)) callback;Swift
func emitPermissionMessage(withUserId userId: String, type: PLVSocketPermissionType, status: Bool, timeout: Double, callback: (([Any]) -> Void)? = nil) -> BoolParameters
userId用户Id
type权限类型
statusYES:授予权限,NO:移除权限
timeout回调超时等待,默认 0
callback回调
Return Value
成功-YES 失败-NO
-
发送'TEACHER_SET_PERMISSION’ socket消息挂断全部用户的连麦
Declaration
Objective-C
- (BOOL)emitPermissionMessageForCloseAllLinkMicWithTimeout:(double)timeout callback: (void (^_Nullable)( NSArray *_Nonnull)) callback;Swift
func emitPermissionMessageForCloseAllLinkMic(withTimeout timeout: Double, callback: (([Any]) -> Void)? = nil) -> BoolParameters
timeout回调超时等待,默认 0
callback回调
Return Value
成功-YES 失败-NO
View on GitHub
PLVSocketManager Class Reference