2016-06-12 5 views
2

PhoenixアプリをHerokuにプッシュし、iOSのチャンネルに接続する以外は正常に動作しています。PhoenixWebSocketを使用してiOSからHerokuでホストされているPhoenixチャンネルに接続できません

ブラウザのチャンネルが期待どおりに機能します。

iOSでは、私はPhoenixWebSocketを使用しています。dev envでは、ローカルのPhoenixアプリケーションへの接続が期待通りに機能します。

私は取得しています問題は、私は、私は次のエラーを取得HerokuのアプリにウェブソケットのURLをポイントすると次のとおりです。以前の今日のエラーメッセージを探しまわって

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アプリケーションをホストしているWebソケット要求を処理できましたか?

チャンネルに参加しようとする前にiOSのリクエストとは別の何かがあるかどうか分かりますか?あるいは、私が見逃したウェブソケットに関するHerokuの設定で何かがあるかもしれませんか?

のiOSでのリクエストのURL:助けて、と私は助けるために供給することができない何かがあるのなら、私に教えてくださいすることができます誰にでも

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

感謝します。

ポール

+0

ポールは、あなたはこれを解決するすべての運を持っていましたか?私も同じ問題に遭遇しています - HerokuでホストされているPhoenixバックエンドでiOSクライアントを使用しています。 – fastredshoes

+0

残念ながら、私は現在、自分のCentos 7サーバーを設定しています。もし私が英雄の問題を解決するものを見つけたら、私は転記します。 –

+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: [])

関連する問題