Tengo problemas para enviar un mensaje a un dispositivo a través del proxy de la compañía.
He hecho el tutorial de GCM en el sitio de google y he registrado con éxito un dispositivo en los servidores de google con el emulador de Android, y también en el servidor en mi extremo.
Para esto tuve que pasar por el proxy de la compañía, configurándolo en el punto de acceso del emulador. Ahora el problema que tengo es enviar un mensaje de mi servidor al dispositivo a través del mismo proxy. estoy usando el código del servlet de la demostración que utiliza la clase de ayudaGoogle nube mensajería GCM a través del proxy
com.google.android.gcm.server.Sender
para enviar el mensaje.
Me postulo los servlets en Tomcat 7.
He intentado fijar el proxy en las catalina.properties archivo como tal.
http.proxyHost=proxy.company.com
http.proxyPort=8080
Y he intentado establecer propiedades dentro del servlet como a continuación.
System.setProperty("http.proxyHost", "proxy.company.com");
System.setProperty("http.proxyPort", "8080");
Pero todavía me sale el tiempo de espera. Sé que es el proxy de la compañía porque recibí el mensaje de trabajo en mi casa, donde no tengo proxy.
He visto un objeto proxy creado en el código java y luego una conexión creada con él, pero no creo que se pueda usar aquí ya que estoy utilizando la clase de ayuda del remitente para enviar el mensaje.
Esta es la línea que falla en un tiempo de espera.
Result result = sender.send(message, registrationId, 5);
Cualquier ayuda sería apreciada.
Saludos
Bill
Aceptar He progresado poco con esto. Descubrí que el mensaje saliente usaba SSL en el puerto 443. Así que agregué una entrada para el proxy https en el archivo catalina.properties, usando los mismos valores que el proxy http y que parecía permitir que el mensaje se apagara. Sin embargo, el mensaje no llega al emulador y en su lugar aparece un error en logcat que dice lo siguiente: [GTalkConnection.12] doConnect: cogido XMPPError que se conecta a mtalk.google.com:5228 .: - causado por: java.net. SocketException: la operación agotó el tiempo de espera Esto me sorprendió ya que pensé que el servicio se registró utilizando el puerto 5228. – billby