![](/img/trans.png)
[英]iOS Safari fails to connect to secure websocket, but works on desktop
[英]How to connect to a non-secure localhost websocket on iOS?
我有一个 Qt 应用程序,它捆绑了一个浏览器和一个在端口 50050 上托管非安全 websocket 服务器的应用程序。浏览器尝试通过 ws://127.0.0.1:50050 连接到该应用程序,这在 macOS 上运行良好。 然而,在 iOS 上,连接失败。 我怀疑这是由于 iOS 特定的安全设置——也因为允许使用 local.network 的对话框没有出现。 请在此处找到我在 Info.plist 文件中应用的与网络相关的安全密钥列表
<key>NSLocalNetworkUsageDescription</key>
<string>Uses local networking to communicate settings…</string>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key><true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
<key>NSAllowsArbitraryLoadsForMedia</key><true/>
<key>NSAllowsArbitraryLoadsInWebContent</key><true/>
<key>NSAllowsLocalNetworking</key><true/>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key><true/>
<key>NSIncludesSubdomains</key><true/>
</dict>
<key>mydomain.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key><true/>
<key>NSIncludesSubdomains</key><true/>
</dict>
</dict>
</dict>
我在安全密钥方面是否遗漏了任何内容,或者是否有人对如何解决此问题有不同的建议?
在 iOS 上,在安全网站 (https) 的上下文中不允许使用非安全网络套接字(既不是本地主机)。 在 OSX 上,除 Safari 之外的任何浏览器都允许使用它。解决方案是使用非安全网站 (http) 或在需要 https 时在本地主机上创建安全的 websocket。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.