gpt4 book ai didi

ios - 无法使用 PhoenixWebSocket 从 iOS 连接到托管在 Heroku 上的 Phoenix channel

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:59:47 24 4
gpt4 key购买 nike

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

浏览器上的 channel 按预期工作。

在 iOS 中我使用 PhoenixWebSocket ,并且在开发环境中,连接到本地 Phoenix 应用程序按预期工作。

我遇到的问题是,当我将网络套接字 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 端。

我已经推送了克里斯的例子chat application到 Heroku,并尝试连接 PhoenixWebSocket 附带的演示应用程序,但得到相同的错误。

有没有其他人设法让 Web 套接字请求在 iOS 和托管 Phoenix 应用程序的 Heroku 之间工作?

有人知道在尝试加入 channel 之前我是否需要对 iOS 中的请求做一些不同的事情吗?或者,也许我错过了一些与 Web 套接字相关的 Heroku 设置?

iOS 中请求的 url:

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

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

保罗

最佳答案

我知道这是旧的,但一个可能的问题是您可能需要通过 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: [])

关于ios - 无法使用 PhoenixWebSocket 从 iOS 连接到托管在 Heroku 上的 Phoenix channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37778242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com