ios - 使用 Socket.IO 时禁用 App Transport Security

标签 ios objective-c socket.io

我正在尝试连接到 Socket.IO 服务器。我正在使用 swift 库

https://github.com/socketio/socket.io-client-swift

这是我的示例代码

NSString *url = [NSString stringWithFormat:@"myIP:443];


    self.socket = [[SocketIOClient alloc] initWithSocketURL:url opts:nil];

    [socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) {
        NSLog(@"socket connected");
    }];

    [socket on:@"currentAmount" callback:^(NSArray* data, SocketAckEmitter* ack) {
        double cur = [[data objectAtIndex:0] floatValue];

        [socket emitWithAck:@"canUpdate" withItems:@[@(cur)]](0, ^(NSArray* data) {
            [socket emit:@"update" withItems:@[@{@"amount": @(cur + 2.50)}]];
        });

        [ack with:@[@"Got your currentAmount, ", @"dude"]];
    }];

    [socket connect];

这是我在我的plist中使用的

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>xx.xx.xxx.xxx</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSTemporaryExceptionMinimumTLSVersion</key>
                <string>TLSv1.1</string>
            </dict>
        </dict>
    </dict>

我还在努力

App Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用的 Info.plist 文件配置临时异常(exception)。

最佳答案

然后它可能会尝试使用您尚未在 info.plist 文件中提供的另一个地址连接到 API。
作为临时措施,您可以这样做,以消除此传输安全错误:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

关于ios - 使用 Socket.IO 时禁用 App Transport Security,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33200682/

相关文章:

javascript - 在 xhr 轮询模式下与 socket.io 的连接停止

python - flask_socketio已连接到客户端,但未接收消息

javascript - 如何将 Socket.IO-Client 连接到 Sails.js 服务器?

iphone - 在 iPhone 4s 上运行应用程序时出现 Xcode 4.3.2 错误

使用 Cloud Functions 的 iOS 后台通知

iphone - iPhone 应用程序中的 Google map 导航和方向

objective-c - 如何消除分组UITableView的左右边距

c++ - IPC 机制在 C++ 和 Objective C 之间进行通信

ios - 如何将独特的推送通知存储到 sqlite 数据库

iphone - 非 ARC 项目中的默认属性声明