我無法通過公司代理向設備發送消息。
我已經完成了谷歌網站上的GCM教程,併成功地在谷歌服務器上用android模擬器 註冊了一個設備,並且也在我的服務器上註冊了該設備。
爲此我必須通過公司代理,將其設置在模擬器的訪問點中。 現在我遇到的問題是通過相同的代理從我的服務器向設備發送消息。 我使用從使用Google代理通過代理傳遞GCM
com.google.android.gcm.server.Sender
輔助類來發送消息的演示servlet代碼。
我跑我已經嘗試設置代理了在catalina.properties文件,像這樣在Tomcat 7
Servlet的。
http.proxyHost=proxy.company.com
http.proxyPort=8080
我試過在下面的servlet中設置屬性。
System.setProperty("http.proxyHost", "proxy.company.com");
System.setProperty("http.proxyPort", "8080");
但我仍然得到超時。 我知道它的公司代理服務器,因爲我的郵件在家裏沒有代理服務器。
我看到了一個在java代碼中創建的代理對象,然後創建了一個連接,但我不認爲這是可用的,因爲我使用發件人幫助器類來發送消息。
這是在超時失敗的行。
Result result = sender.send(message, registrationId, 5);
任何幫助,將不勝感激。
問候
比爾
OK我有這種略帶進展。我發現傳出的消息是在端口443上使用SSL。因此,我在catalina.properties文件中添加了一個用於https代理的條目,使用與http代理相同的值,並且似乎允許消息傳出。然而,這個消息沒有到達模擬器,而是我在logcat中得到一個錯誤,指出以下內容:[GTalkConnection.12] doConnect:抓住XMPPError連接到mtalk.google.com:5228 .: - 由:java.net引起。 SocketException:操作超時 這讓我感到驚訝,因爲我認爲服務是使用端口5228註冊的。 – billby 2012-07-13 06:53:56