美文网首页
Socket.IO on Objective-C

Socket.IO on Objective-C

作者: 月咏蝴蝶 | 来源:发表于2016-02-23 13:25 被阅读4461次

    Socket.IO on iOS 基础与简介
    GitHub下载地址(swift版本):socket.io-client-swift

    1. 下载解压项目之后,将Source文件夹全部拖入项目中
    258813FE-F822-42DA-9F35-93BE877B1047.png
    1. 项目->Build Setting->Packaging
      Defines Module 设置成YES
      Product Module Name保持原样或者设置成你想要的名字

      80078F0E-D773-4F3F-856D-83F640432DDB.png
    2. (这里讲的是Objective-C项目)此时Xcode会跳出一个弹框,选择YES,创建连接桥XXXX(项目名字)-Bridging-Header

    3. 下面介绍代码部分

    因为我的Product Module Name保持不变,所这里是VoiceDemo
    这里import的是XXXX(项目名字)-swift.h 后面格式不变
    import貌似不会自动跳出,必须自己敲出来,但是可以command+鼠标点击进去看

    #import "VoiceDemo-swift.h"
    
        NSURL *url = [[NSURL alloc] initWithString:@"ws://xxxxxxxx:3001"];
        self.socket = [[SocketIOClient alloc] initWithSocketURL:url options:@{@"log": @YES, @"forcePolling": @YES, @"nsp":@"/im"}];
        
        [self.socket on:@"connect" callback:^(NSArray * _Nonnull data, SocketAckEmitter * _Nonnull ack) {
            NSLog(@"(SocketIOClientStatusConnected = 3) socket status:%ld",ack.socket.status);
            
            NSLog(@"actNum:%ld",ack.ackNum);
        }];
        
        [self.socket on:@"broadcast" callback:^(NSArray *data, SocketAckEmitter *ack) {
            NSLog(@"%@",data);
        }];
        
        [self.socket connect];
    

    在这里有一个问题,我搞了好久最后才发现(之前一直连不上),initWithSocketURL后面只能放到端口号而已,端口号后面的后缀放在options里面的@"nsp"里面

    相关文章

      网友评论

          本文标题:Socket.IO on Objective-C

          本文链接:https://www.haomeiwen.com/subject/vbibkttx.html