2010-12-03 15 views
11

He intentado utilizar una variedad de bibliotecas XMPP para Node.js, y tengo problemas para conectarme a los servidores XMPP de Google Talk. ¡Quiero conectarme y leer el estado de amigos, pero ni siquiera puedo salir!Conexión a Google Talk a través de XMPP en Node.js

  1. Tengo un dominio personal alojado a través de Google Apps for Domains, por ejemplo, mydomain.com.
  2. Tengo el siguiente código escrito - que hace uso de la biblioteca nodo en XMPP (https://github.com/astro/node-xmpp):

    jid = '[email protected]'; 
    password = 'my_google_password'; 
    
    // Establish a connection 
    var conn = new xmpp.Component({ 
        jid   : jid, 
        password : password, 
        host  : 'talk.google.com', 
        port  : 5222 
    }); 
    conn.on('online', function(){ 
        sys.put("ONLINE");   
    }); 
    conn.on('error', function(e) { 
        sys.puts(e); 
    }); 
    

Se establece una conexión, pero falla la autenticación, y recibo este mensaje volver de Google Talk:

<stream:error xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client"> 
    <not-authorized xmlns="urn:ietf:params:xml:ns:xmpp-streams"/> 
</stream:error> 

... ¿me falta algo? He probado otras bibliotecas (https://github.com/mwild1/xmppjs), e incluso una biblioteca de Python, y todavía no he podido autenticarme. Estoy 100% seguro de que mi nombre de usuario y contraseña de Google son correctos, ¿algún consejo o idea?

+0

por cierto creo xmppjs es una biblioteca de componentes y no se puede utilizar para conectarse a google – Alfred

+0

tal vez debería aceptar su propia respuesta para que este tema se pueda cerrar. – Alfred

Respuesta

11

Lo descubrí.

Estaba trabajando con algunos ejemplos inexactos.

En el ejemplo anterior, tendrá que cambiar:

var conn = new xmpp.Component({...}) 

... a ...

var conn = new xmpp.Client({...}) 
+0

lol oops. No lo leí correctamente :). Ya resolvió su problema :) – Alfred

+0

Gracias, ¡esto me ayudó! –

7

estoy en linux ubuntu por lo que instalarlo primero tuve que hacer esto (Primer nodo de instalación/npm following receipe from npm website).

sudo apt-get install libexpat1 libexpat1-dev 
npm install node-xmpp 
sudo apt-get install libicu-dev 
npm install node-stringprep 

Con este fragmento I con éxito cerrar sesión y se envía un mensaje de mi cuenta de Gmail a mi cuenta jabber.org:

var argv = process.argv; 
const xmpp = require('node-xmpp'); 
const sys = require('sys'); 

if (argv.length != 5) { 
    sys.puts('Usage: node xmpp.js <my-jid> <my-password> <to>'); 
    process.exit(1); 
} 

const jid = argv[2]; 
const password = argv[3]; 
const to = argv[4]; 

// Establish a connection 
const conn = new xmpp.Client({ 
    jid   : jid, 
    password : password, 
    host  : 'talk.google.com', 
    port  : 5222 
}); 

conn.on('online', function(){ 
    console.log('online'); 

    conn.send(new xmpp.Element('presence')); 
    conn.send(new xmpp.Element('message', 
     { to: to, // to 
      type: 'chat'}). 
      c('body'). 
      t('testje')); 
}); 

conn.on('error', function(e) { 
    sys.puts(e); 
}); 
+0

Cómo puedo conectarme a xmpp sin usar el módulo node-xmpp – Rohit

Cuestiones relacionadas