PLVSocketManager
@interface PLVSocketManager : NSObject
socket 管理类
-
是否允许使用分房间功能,优先级高于后台的配置 默认为NO,不允许
Declaration
Objective-C
@property (nonatomic, assign, unsafe_unretained, readwrite) BOOL allowChildRoom;
Swift
var allowChildRoom: Bool { get set }
-
是否开启奖杯功能,默认关闭
Declaration
Objective-C
@property (nonatomic, assign, unsafe_unretained, readwrite) BOOL getCup;
Swift
var getCup: Bool { get set }
-
配置私有域名 如果与默认域名相同,会自行忽略,为空使用默认域名
Declaration
Objective-C
@property (nonatomic, strong, readwrite) NSString *_Nullable chatDomain;
Swift
var chatDomain: String? { get set }
-
可用于增加socket监听事件,为空则只监听默认事件
Declaration
Objective-C
@property (nonatomic, strong, readwrite) NSSet<NSString *> *_Nullable listeningEvents;
Swift
var listeningEvents: Set<String>? { get set }
-
socket 的连接状态
Declaration
Objective-C
@property (nonatomic, assign, unsafe_unretained, readonly) PLVSocketConnectStatus status;
Swift
var status: PLVSocketConnectStatus { get }
-
是否登陆成功
Declaration
Objective-C
@property (nonatomic, assign, unsafe_unretained, readonly) BOOL login;
Swift
var login: Bool { get }
-
后端是否开启分房间功能 需要childRoomEnable为YES且allowChildRoom也为YES,才会真正开启分房间功能
Declaration
Objective-C
@property (nonatomic, assign, unsafe_unretained, 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, assign, unsafe_unretained, 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 }
-
单例方法
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是否尚未初始化
-
登出时调用
Declaration
Objective-C
- (void)logout;
Swift
func logout()
-
增加PLVSocketManagerProtocol协议的监听者
Declaration
Objective-C
- (void)addDelegate:(nonnull id<PLVSocketManagerProtocol>)delegate delegateQueue:(nonnull dispatch_queue_t)delegateQueue;
Swift
func addDelegate(_ delegate: PLVSocketManagerProtocol, delegateQueue: DispatchQueue)
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