美文网首页
WebSocket通讯的Socket.IO框架

WebSocket通讯的Socket.IO框架

作者: 攻克乃还_ | 来源:发表于2017-08-19 11:04 被阅读29次

    WebSocket功能很强大,不过技术也很复杂,需要加密解密,包装协议,三次握手等,这里推荐使用Socket.IO框架。

    Socket.IO基于Node.js,支持WebSocket协议,用于实时通讯,是可以跨平台的开源框架。

    Socket.IO包含了客户端(iOS/Android)和 服务器(Node.js)两端的代码。

    Socket.IO移动端代码的使用:

    Socket.IO只有swift代码,如果需要与OC混编,建议不要用Cocoapods,会出现未知问题,建议直接拖入。

    如报错说当前swift版本过时,点击Xcode上方Edit => Convert => TO Current Swift Syntas 就好。

    swift代码想在OC中使用,只要导入头文件“工程文件名-swift.h”即可,系统自动帮我们生成,生成可能略有延迟。(注意工程文件名中不能有“-”符号)

    1.监听事件
    • TCP/IP协议中,成功接收数据后会回复一个ACK数据,标记着是否成功传输
    NSURL *url = [NSURL URLWithString:@"ws://192.168.0.100:8080"];                                       SocketIOClient *socket = [[SocketIOClient alloc] initWithSocketURL:url   config:@{@"log": @YES, @"forcePolling": @YES}]; 
    _socket = socket; 
    // 请求连接
    [socket connect];
    // 监听连接成功 
    // 1> 监听函数参数一:on -> 监听的事件名称
    // 2> 监听函数参数二:callback -> 监听回调函数
    // 1> 回调函数参数一: data -> 服务器响应的数据
    // 2> 回调函数参数二: ask -> 确认请求数据
    [socket on:@"connect" callback:^(NSArray * _Nonnull data, SocketAckEmitter * _Nonnull ask) { 
        NSLog(@"与服务器连接成功"); 
    }];
    
    2.发送数据
    // 1> 参数一:事件名称
    // 2> 参数二: 要传输的数据数组
    [socket emit:@"chat" with:@[@"你好"]];
    

    相关文章

      网友评论

          本文标题:WebSocket通讯的Socket.IO框架

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