No puede conectarse al servidor de Google Cloud Connection
Estoy tratando de abrir una conexión XMPP entre mi servidor y el servidor de conexión de Google Cloud (CCS), pero no funciona. Estoy programando con PHP y usando la biblioteca JAXL. Aquí está mi código:
<?php include_once 'jaxl.php'; $client = new JAXL(array( 'jid'=>'<my_sender_ID>@gcm.googleapis.com', 'pass'=>'my_API_key', 'auth_type'=>'PLAIN', 'host' => 'gcm.googleapis.com', 'port' => '5235', 'force_tls' => true )); $client->start(); echo "done"; ?>
Y luego me sale este error:
- Cómo utilizar Smack 4.1 en Android?
- Utilizar XMPP para enviar notificaciones de usuario en Android: cualquier forma de orientarlas para que no vayan a Google Talk, etc.
- Android y (millones de) notificaciones push
- ¿Es la mejor práctica para las conexiones móviles persistentes en Android?
- No se puede enviar o recibir presencia con ASmack
unable to connect tcp://gcm.googleapis.com:5235 with error no: 110, error str: Connection timed out
¿Qué estoy haciendo mal?
- Cómo obtener la misma conexión xmpp de una actividad a otra?
- Error en la autenticación SASL de Gtalk XMPP con el mecanismo X-OAUTH2?
- Obtener usuarios en línea (entradas de la lista) usando smack 4.1 en android
- Mensajes XMPP perdidos en Android mientras cambia la conectividad de datos (por ejemplo, activando Wifi de, GSM <-> Wifi)
- Android: asmack (portado) o smack (parcheado)?
- Android: abrir fuego xmpp
- IN XMPP obtener la excepción no autorizada (401), mientras que la presentación del formulario
- Cómo crear una cuenta de Smack 4.1
Usted debe conectarse a gcm.googleapis.com por ssl, no http o tcp.
He arreglado esto modificando jaxl.php desde:
public function get_socket_path() { return ($this->cfg['port'] == 5223 ? "ssl" : "tcp")."://".$this->cfg['host'].":".$this->cfg['port']; }
a:
public function get_socket_path() { return ($this->cfg['port'] == 5223 || $this->cfg['ssl'] == true ? "ssl" : "tcp")."://".$this->cfg['host'].":".$this->cfg['port']; }
Después de eso, puede inicializar el cliente con:
$client = new JAXL(array( 'jid' => '<your-API-key>@gcm.googleapis.com', 'pass' => '<your-API-key>', 'host' => 'gcm.googleapis.com', 'port' => 5235, 'force_tls' => true, 'auth_type' => 'PLAIN', 'strict' => FALSE, 'ssl' => TRUE ));
Además, al inicializar el cliente, utilice
'log_level' => JAXL_DEBUG
Eso le permitirá ver todo lo que está enviando o recibiendo. En mi caso, descubrí que mi proyecto aún no se ha incluido en la lista blanca. Olvidé registrarlo en https://services.google.com/fb/forms/gcm/.
jaxl_socket_client:189 - 2013-10-04 08:11:58 - <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><temporary-auth-failure/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Project 1012343798740 not whitelisted.</text></failure>
Tal vez debería cambiar el host
a http : //gcm.googleapis.com. Su error dice "no se puede conectar tcp : //gcm.googleapis.com: 5235".
GCM Cloud Connection Server (CCS) es un punto final XMPP que se ejecuta en http://gcm.googleapis.com puerto 5235.