【发布时间】:2016-12-02 06:00:09
【问题描述】:
我已将 Phoenix 应用程序推送到 Heroku,除了从 iOS 连接到频道外,它运行良好。
浏览器上的频道按预期工作。
在 iOS 中我使用 PhoenixWebSocket,在开发环境中,连接到本地 Phoenix 应用程序按预期工作。
我遇到的问题是当我将 web socket url 指向 Heroku 应用程序时,我收到以下错误:
Error Domain=WebSocket Code=301 "Invalid HTTP upgrade" UserInfo={NSLocalizedDescription=Invalid HTTP upgrade}
今天早些时候在四处寻找错误消息,我发现Chris McCord的一个帖子,我认为是,说这个错误消息是服务器拒绝升级请求的结果。
但是,我环顾 Heroku 并发现了这一点; Websockets functionality is supported for all applications.
所以我很困惑我的问题是在 iOS 端还是 Heroku 端。
我已将 Chris 的示例 chat application 推送到 Heroku,并尝试连接 PhoenixWebSocket 附带的演示应用,但得到相同的错误。
有没有其他人设法让 Web 套接字请求在 iOS 和托管 Phoenix 应用程序的 Heroku 之间工作?
在尝试加入频道之前,是否有人知道我需要对 iOS 中的请求做些什么不同的事情?或者,也许 Heroku 设置与我错过的 Web 套接字有关?
iOS中请求的url:
let url = NSURL(string: "ws://app-name-32793.heroku.com/socket/websocket")!
非常感谢任何可以提供帮助的人,如果还有什么我可以提供的帮助,请告诉我。
保罗
【问题讨论】:
-
保罗,你有没有运气解决这个问题?我遇到了同样的问题——也使用了一个 iOS 客户端和一个托管在 Heroku 上的 Phoenix 后端。
-
很遗憾没有。因此,我目前正在设置自己的 Centos 7 服务器。如果我找到任何可以解决 heroku 问题的方法,我会回复。
-
@fastredshoes 我还没有回去尝试修复 Heroku 问题,因为我已经在我自己的服务器上修复了同样的问题。我在这篇文章中找到了帮助:link。 HTH 你。
-
它做到了!谢谢。
标签: ios swift sockets heroku phoenix-channels