菜鸟教程小白 发表于 2022-12-11 16:43:02

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


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

<p>浏览器上的 channel 按预期工作。</p>

<p>在 iOS 中,我使用的是 <a href="https://github.com/almassapargali/PhoenixWebSocket" rel="noreferrer noopener nofollow">PhoenixWebSocket</a> ,并且在开发环境中,连接到本地 Phoenix 应用程序按预期工作。</p>

<p>我遇到的问题是当我将 web socket url 指向 Heroku 应用程序时,我收到以下错误:</p>

<pre><code>Error Domain=WebSocket Code=301 &#34;Invalid HTTP upgrade&#34; UserInfo={NSLocalizedDescription=Invalid HTTP upgrade}
</code></pre>

<p>今天早些时候在四处寻找错误消息,我发现Chris McCord的一个帖子,我认为是,说这个错误消息是服务器拒绝升级请求的结果。 </p>

<p>但是,我环顾 Heroku 并发现了这一点; <a href="https://devcenter.heroku.com/articles/http-routing#websockets" rel="noreferrer noopener nofollow">Websockets functionality is supported for all applications</a> .</p>

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

<p>我已经推送了 Chris 的示例 <a href="https://github.com/chrismccord/phoenix_chat_example" rel="noreferrer noopener nofollow">chat application</a>到 Heroku,并尝试连接 PhoenixWebSocket 附带的演示应用程序,但得到相同的错误。</p>

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

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

<p>iOS中请求的url:</p>

<pre><code>let url = NSURL(string: &#34;ws://app-name-32793.heroku.com/socket/websocket&#34;)!
</code></pre>

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

<p>保罗</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我知道这是旧的,但一个可能的问题是您可能需要通过 https/wss 连接。所以要么</p>

<p><code>让 url = NSURL(string: "wss://app-name-32793.heroku.com/socket/websocket")!</code></p>

<p>或:</p>

<p><code>let socket = Socket(domainAndPort: "app-name-32793.heroku.com", path: "socket", transport: "websocket", prot: "https", params: [])</code></p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 无法使用 PhoenixWebSocket 从 iOS 连接到托管在 Heroku 上的 Phoenixchannel ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/37778242/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/37778242/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 无法使用 PhoenixWebSocket 从 iOS 连接到托管在 Heroku 上的 Phoenix channel