无法使用 PhoenixWebSocket 从 iOS 连接到 Heroku 上托管的 Phoenix 频道



我已经将Phoenix应用程序推送到Heroku,除了从iOS连接到频道外,它运行良好。

浏览器上的频道按预期工作。

在iOS中,我使用PhoenixWebSocket,在dev-env中,连接到本地Phoenix应用程序可以正常工作。

我遇到的问题是,当我将网络套接字url指向Heroku应用程序时,我会收到以下错误:

Error Domain=WebSocket Code=301 "Invalid HTTP upgrade" UserInfo={NSLocalizedDescription=Invalid HTTP upgrade}

今天早些时候,我四处查找错误消息,发现Chris McCord发了一条帖子,我想是的,说这个错误消息是服务器拒绝升级请求的结果。

然而,我环顾四周,发现了这一点;所有应用程序都支持Websockets功能。

所以我很困惑我的问题是在iOS方面,还是在Heroku方面。

我已经将Chris的示例聊天应用程序推送到了Heroku,并尝试连接PhoenixWebSocket附带的演示应用程序,但遇到了同样的错误。

是否有其他人能够在iOS和Heroku托管Phoenix应用程序之间处理网络套接字请求?

有人知道在尝试加入频道之前,我是否需要在iOS中对请求做一些不同的处理吗?或者,也许Heroku设置中有一些与网络套接字有关的东西我错过了?

iOS中请求的url:

let url = NSURL(string: "ws://app-name-32793.heroku.com/socket/websocket")!

非常感谢任何能提供帮助的人,如果还有其他我可以提供的帮助,请告诉我。

Paul

我知道这是旧的,但一个可能的问题是您可能需要通过https/wss进行连接。所以要么

let url = NSURL(string: "wss://app-name-32793.heroku.com/socket/websocket")!

或:

let socket = Socket(domainAndPort: "app-name-32793.heroku.com", path: "socket", transport: "websocket", prot: "https", params: [])

相关内容

  • 没有找到相关文章

最新更新