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 chatToken
Swift
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) -> Bool
Parameters
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) -> Bool
Parameters
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) -> Bool
Parameters
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) -> Bool
Parameters
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) -> Bool
Parameters
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) -> Bool
Parameters
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) -> Bool
Parameters
userId
用户Id
type
权限类型
status
YES:授予权限,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) -> Bool
Parameters
userId
用户Id
type
权限类型
status
YES:授予权限,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) -> Bool
Parameters
timeout
回调超时等待,默认 0
callback
回调
Return Value
成功-YES 失败-NO