• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-11 16:43:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

在 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 之间工作?

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

iOS中请求的url:

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

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

保罗



Best Answer-推荐答案


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

让 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap