iOS 使用SocketIO 实现聊天功能-倾城孤月
首先,第一步,导入框架
pod 'Socket.IO-Client-Swift'
pod 'EBBannerView'//自定义弹框
2.登录SocketIO以连接服务器
//连接
[SocketIOClientHandler handler].manager=[[SocketManager alloc]initWithSocketURL:[NSURL URLWithString:@"http://192.168.0.108:9001"] config:@{@"log": @NO, @"forcePolling": @NO,@"doubleEncodeUTF8":@true}];
doubleEncodeUTF8 设为TRUE为了避免中文乱码
SocketIOClient *socket=[SocketIOClientHandler handler].manager.defaultSocket;
[SocketIOClientHandler handler].client=socket;
[[SocketIOClientHandler handler].manager connectSocket:[SocketIOClientHandler handler].client];
[[SocketIOClientHandler handler].manager connect];
//监听连接成功
[[SocketIOClientHandler handler].client on:@"connect" callback:^(NSArray * _Nonnull data, SocketAckEmitter * _Nonnull ack) {
NSLog(@"socket connect = :%@",data);
}];
//发送消息
[[SocketIOClientHandler handler].client emit:@"shopLogin" with:@[dict]];
//监听断开连接
[[SocketIOClientHandler handler].client on:@"disconnect" callback:^(NSArray * _Nonnull data, SocketAckEmitter * _Nonnull ack) {
NSLog(@"socket disconnect=:%@",data);
}];
//断开连接
[[SocketIOClientHandler handler].manager disconnect];
[[SocketIOClientHandler handler].manager removeSocket:[SocketIOClientHandler handler].client];
在监听之后连接
[[SocketIOClientHandler handler].client connect];
//监听接收数据
[[SocketIOClientHandler handler].client on:@"recContent" callback:^(NSArray * _Nonnull data, SocketAckEmitter * _Nonnull ack) {
NSLog(@"data is %@",data);
}];
提示:只需要登录一遍,不需要重复登录