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 中的完美功能
iOS mobile safari - 底部栏覆盖了我的页脚