Open3
iOS SimulatorでWebSocketをProxyできない
経緯
iOSでWebSocketを使っている。接続が失敗するときの動作を確認したくて、Charlesを用いてブロックしてみたが、うまくいかない。
参考 iOSで使う際の設定例
まとめ
Starscream がProxyに対応していないため動かない。
URLSessionWebSocketTaskを使えば解決できる可能性がありそう。
--
このドキュメントは "Chatwork Tech Tips" の一環です。
その他の Tips も含めて @Chatwork_dev にて確認することができます 👨🏫
思考メモ
- ブラウザではブロックできている。
- 可能性としてはライブラリの問題の可能性が高いのではないか。
- 例えば直接SocketをあつかったりするとProxyが考慮されない。この場合はProxyサーバーに対してTCP接続しなければならないのではないか。
- 最近はiOS SDKに URLSessionWebSocketTaskというのがあるようだ
- つかっているライブラリは Starscream だった。
- READMEに TODO Proxy supportとかかれている
- 4.0.4のREADME
思考メモ2 StarscreamはどのようにPorxy対応すればいいんだろう
- TCPソケットをopenしたときはProxyの設定を利用しないと予想
- OSからProxy設定情報をよみだして、そのアドレスとポートに直接アクセスして対応するんじゃないだろうか。