2010-12-03 2 views
11

Node.js에 다양한 XMPP 라이브러리를 사용해 보았으며 Google 토크의 XMPP 서버에 연결하는 데 문제가 있습니다. 나는 친구의 지위를 읽고 연결하고 싶어하지만 문 밖에 나올 수 없다!Node.js의 XMPP를 통해 Google 토크에 연결

  1. Google 도메인 용 애플리케이션 (예 : mydomain.com)을 통해 호스팅되는 개인 도메인이 있습니다.
  2. I했습니다 다음과 같은 코드를 작성 있어요 -는 노드 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); 
    }); 
    

을하지만, 인증에 실패, 나는이 메시지가 Google 토크에서 돌아 가기 :

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

... 나는 무엇인가 놓치고 있습니까? 저는 다른 라이브러리 (https://github.com/mwild1/xmppjs)와 파이썬 라이브러리를 시도해 보았지만 여전히 인증 할 수 없었습니다. 내 Google 사용자 이름과 비밀번호가 정확하다는 것을 100 % 확신합니다 - 팁/아이디어가 있습니까?

+0

가 BTW 내가 xmppjs 믿지는 구성 요소 라이브러리 및에 사용할 수 없습니다 Google에 연결하십시오. – Alfred

+0

아마도이 주제가 닫힐 수 있도록 자신의 대답을 수락해야합니까? – Alfred

답변

11

알아 냈어.

일부 부정확 한 예제로 작업하고있었습니다. 내 위의 예에서

, 당신은 변경할 수 있습니다 :

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

...에 ... 나는 우분투 리눅스 오전

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

lol oops. 이 올바른 읽지 않았다 :). 당신은 allready 당신의 문제를 해결했습니다 :) – Alfred

+0

고마워,이 날 도와 줬어! –

7

그래서 내가 처음에 한하여 설치 이것을하십시오 (첫번째 설치 노드/npm following receipe from npm website). 나는 성공적으로 로그인 내 jabber.org 계정에 Gmail 계정에서 메시지를 보내이 조각으로

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

:

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

node-xmpp 모듈을 사용하지 않고 xmpp에 어떻게 연결할 수 있습니까? – Rohit