2016-06-12 184 views
2

我已将一个Phoenix应用程序推送到Heroku,并且它运行良好,除了连接到iOS的频道。使用PhoenixWebSocket无法连接到使用Heroku从iOS上托管的Phoenix频道

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

在iOS中,我使用PhoenixWebSocket,并在开发环境中,连接到当地的凤凰应用程序按预期工作。

我得到的问题是,当我点了网络插座网址Heroku的应用程序,我得到以下错误:

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

今天早些时候四处寻找错误信息,我发现从克里斯·麦科德后,我想是的,说这个错误信息是服务器拒绝升级请求的结果。

但是,我环顾了Heroku并发现了这个; Websockets functionality is supported for all applications

所以我很困惑我的问题是在iOS端还是Heroku端。

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

是否有其他人设法让iOS套件和Heroku托管Phoenix应用程序之间的网络套接字请求?

有人会知道,如果有什么不同,我需要在iOS试图加入该频道之前处理请求?或者,也许有一些与我错过的网络套接字相关的Heroku设置?

在iOS的请求的网址:

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

非常感谢任何人,可以帮助,并请让我知道如果有什么我可以提供帮助。

保罗

+0

保罗,你的运气如何解决呢?我遇到了同样的问题 - 也使用了一个iOS客户端,并在Heroku上托管了Phoenix后端。 – fastredshoes

+0

不幸的是没有。我目前正在设置我自己的Centos 7服务器。如果我找到了解决heroku问题的​​任何内容,我会回复。 –

+0

@fastredshoes我还没回去尝试修复Heroku问题,因为我在我自己的服务器上修复了相同的问题。我在这篇文章中找到了帮助:[link](http://stackoverflow.com/questions/38229629/how-to-set-up-websockets-with-phoenix-behind-nginx/38230388?noredirect= 1个#comment63907382_38230388)。 HTH你。 –

回答

0

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

相关问题