IOS safari 和 Chrome 阻止了我的 websocket django 频道

Posted

技术标签:

【中文标题】IOS safari 和 Chrome 阻止了我的 websocket django 频道【英文标题】:IOS safari and Chrome block my websocket django Channels 【发布时间】:2020-08-25 02:16:00 【问题描述】:

我在使用 django 频道开发网络应用时遇到问题。在笔记本电脑上,websocket 完美运行:数据被很好地接收端发送。但在所有 iPhone 上,它都不起作用。感谢网络检查器,我发现了错误:连接被阻止,因为它不安全(ws)。 ios Chrome 也有同样的问题,但 Ecosia 可以工作。该应用程序在 android 上运行良好。 如何防止 IOS Safari(和 Chrome)阻止连接? 谢谢。

【问题讨论】:

【参考方案1】:

我自己发现的。我必须确保连接(https)。在 django/heroku 中,我必须在 settings.py 中添加这两行

SECURE_SSL_REDIRECT = True 
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

并在我的 js 文件中使用路径 'wss://...' 创建 Websocket 构造函数,现在通过 websocket 得到保护。

仍然不知道为什么 IOS safari 阻止了与 ws websocket 的连接。

请注意,这些设置仅适用于生产环境。

【讨论】:

以上是关于IOS safari 和 Chrome 阻止了我的 websocket django 频道的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Web 应用在 iOS(Chrome 和 Safari)上滚动超级慢,但在所有其他平台上都可以?

Safari 中的“不允许请求资源”和 Firefox 中的“阻止加载混合活动内容”。 Chrome 中的完美功能

显示:阻止在 Chrome 或 Safari 中不起作用

iOS mobile safari - 底部栏覆盖了我的页脚

iOS 9 Web 应用程序阻止在移动 Safari 中打开链接

视频不适用于 Safari 和 iOS