简体   繁体   中英

Crash on server Socket.io callback, using swift client library

I've this swift code:

[[self.socket emitWithAck:@"setup_request" with:@[]] timingOutAfter:0 callback:^(NSArray* data) {
   NSLog(@"%@", data);
}];

paired with this server function:

client.on('setup_request', function(data, callback) {
    callback({ success:true});
});

but when executing it, the server crashes with this message:

callback({ success:true});
^

TypeError: callback is not a function

I'm using server version 2.0.4, and the 13.1.0 Swift client library.

I can't see what I'm doing wrong, and how to fix this error. Thanks for your help.

So i guess there exist some kind of bridging in your project as clearly the first block is Objective C code, and your code is in swift. Also callback:^(NSArray* data) , means the callback expects an NSArray to be passed, but in your code you are passing a closure.

Pass an NSArray instead : callback(["success"] as? NSArray)

Found the issue, the server method interface has changed in version 2.0, now it's like:

client.on('setup_request', (callback) => {
    callback({success:true});
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM