ios - 在 ios 中使用 socket io 发送图像

标签 ios socket.io

我有使用下面的例子 https://github.com/socketio/socket.io-client-swift 如何使用套接字io发送图像?

最佳答案

例如,你可以发送这样一张图片

//emit filename and size to server

   - (void)testButtonClicked {

     _fileName = @"001@3x.png";
     NSString *path = [[NSBundle mainBundle] pathForResource:@"001@3x" ofType:@"png"];
     _imgData = [NSData dataWithContentsOfFile:path];

     float length = [_imgData length];
     NSString *fileSizeString = [NSString stringWithFormat:@"%f", length];

    NSArray *array = [NSArray arrayWithObject:@{@"Name": _fileName, @"Size":fileSizeString}];    
    [socket emit:@"start" withItems:array];
    }


//server callback

 [socket on:@"moreData" callback:^(NSArray *array, SocketAckEmitter *emitter) {


            NSString *dataPosition = [array[0]objectForKey:@"position"];

            [self uploadAvatarImage:dataPosition];
        }];

// uploadImage Method

- (void)uploadAvatarImage:(NSString *)dataPosition {

     NSString *path = [[NSBundle mainBundle] pathForResource:@"001@3x" ofType:@"png"];
    _imgData = [NSData dataWithContentsOfFile:path];

    NSString *imageString = [[NSString alloc]initWithData:_imgData encoding:NSStringEncodingConversionAllowLossy];

    NSRange range;
    if ([dataPosition intValue]<[_imgData length]) {

        if ([_imgData length]-[dataPosition intValue]>5120) {
            range.length = 5120;
        }else {
            range.length = [_imgData length]-[dataPosition intValue];
        }

        range.location =[dataPosition intValue];
        NSString *subString = [imageString substringWithRange:range];
        NSArray *array = [NSArray arrayWithObject:@{@"Name": _fileName, @"Segment":subString}];

        [socket emit:@"upload" withItems:array];
    }
}

关于ios - 在 ios 中使用 socket io 发送图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758880/

相关文章:

node.js - Socket.io 作为客户端进行身份验证

iphone - 根据纬度和经度得到错误的排序距离

ios - Sprite Kit 物理变量与 Cocos2d+Box2d 的比较

ios - 如何使用 Swift 更新 CoreData 数据

javascript - Angular-fullstack 生成器生产应用程序无法正确服务于 socket.io?

node.js - 发送到单个客户端套接字 io 1.3.2

socket.io - 如何从网址中删除socket.io EIO和其他参数

javascript - socket.io - 如何加入房间

ios - 如果从 NSJSONSerialization 返回值的条件语句

iphone - 接听来电时强制终止应用程序