首先,第一步,導入框架
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);
}];
提示:只需要登錄一遍,不需要重復登錄