会社のプロキシ経由でデバイスにメッセージを送信する際に問題が発生しています。
私はGoogleサイトでGCMチュートリアルを行っており、アンドロイドエミュレータ とGoogleサーバー上の端末を正常に登録しました。
私は会社プロキシを経由して、エミュレータのアクセスポイントに設定しなければなりませんでした。 今私が持っている問題は、サーバーから同じプロキシ経由でデバイスにメッセージを送信することです。 私がメッセージを送信するためにGoogleクラウドメッセージングプロキシ経由のGCM
com.google.android.gcm.server.Sender
ヘルパークラスを使用してデモからサーブレットのコードを使用しています。
は、私はそうのようなファイルをバックアップしcatalina.propertiesでプロキシを設定しようとしたのTomcat 7
上のサーブレットを実行しています。
http.proxyHost=proxy.company.com
http.proxyPort=8080
そして、以下のようにサーブレット自体のプロパティを設定しようとしました。
System.setProperty("http.proxyHost", "proxy.company.com");
System.setProperty("http.proxyPort", "8080");
ただし、まだタイムアウトが発生します。 私は代理人がいない家庭でメッセージングを手に入れたので、会社のプロキシを知っています。
私は、Javaコードで作成されたプロキシオブジェクトとその後で作成された接続を見ましたが、メッセージを送信するためにSenderヘルパークラスを使用しているので、ここでは使用できないと思います。
これはタイムアウトに失敗した行です。
Result result = sender.send(message, registrationId, 5);
助けてください。
よろしく
ビル
OK、私はこれで少し進んでいます。私は、発信メッセージがポート443でSSLを使用していることを発見しました。したがって、HTTPプロキシと同じ値を使用して、メッセージが出るように思われるhttpsプロキシのエントリをcatalina.propertiesファイルに追加しました。しかし、メッセージはエミュレータに届かず、代わりに次のようなエラーメッセージが表示されます。[GTalkConnection.12] doConnect:mtalk.google.com:5228に接続しているXMPPErrorをキャッチしました。: - 原因:java.net。 SocketException:操作がタイムアウトしました サービスがポート5228を使用して登録されていると思ったので、これは私を驚かせました。 – billby