2017-03-28 19 views
1

私は、OkHttpを使用してHTTP/2ベースのプロトコルのクライアントを実装しようとしています。このプロトコルは基本的に、カスタムTCPプロトコルを介した暗号化されていないHTTP/2-Prior-Knowledgeストリームです(はい、壊れていることは分かっていますが、変更できません)。OkHttpプロトコルの選択を拡張する

OkHttp3はTCPを使用している場合にのみHTTP/2事前知識をサポートしているようですので、自分のプロトコルを実装するカスタムSSLSocketFactorySSLSocketを構築しました。私のリモートはHTTP/1.1-> HTTP/2のアップグレードをサポートしていないので、事前知識が必要です。OkHttpはTLS拡張を介してのみサポートされているようですが、プロトコル選択コードis platform-dependent

OkHttpの半分を再実装したり、OkHttpクラスまたはJDK内部クラスに反映させたりすることを含まないプロトコル選択ロジックにフックする方法はありますか?たぶん偽TLSハックがなくても? RealConnectionを置き換えることは現実的ではないようです。なぜなら、okhttpはあなたが実装できるどんな種類のConnectionFactoryも提供しないからです。

答えて

1

OkHttpは、HTTP/HTTPS over ALPNのみを実行します。独自のカスタムプロトコルに悩まされているので、カスタムプロトコルの前にあるHTTP/2 over HTTPSサーバーを追加することを検討してください。あなたはnginxでこれを行うことができるかもしれない?

関連する問題