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);

    

        }];

提示:只需要登录一遍,不需要重复登录

 

posted @ 2018-12-25 13:30  倾城孤月  阅读(2831)  评论(0)    收藏  举报