2011-07-14 8 views
1

私のサーバーに匿名で接続するブラウザのjavascript xmppクライアントで作業しています。XMPP/Jabberで匿名ユーザーを再接続する方法


しかし、ユーザーがページをリロードするか、それを残し、その後、それに戻ったとき、私は同じ匿名アカウントを使用してサーバーに再接続する を必要としています。これどうやってするの?

私はStropheライブラリ(xmpp over bosh)を使用しています。だから私はすでに次の操作を実行しようとした:

connection.connect(jid, "", onConnect); 

これは、サーバからの失敗応答をもたらす:

<body xmlns='http://jabber.org/protocol/httpbind'> 
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"> 
<not-authorized/></failure> 
</body> 

とも:

JID、取り除くとsidはクッキーからです
connection.attach(jid, sid, rid, onConnect); 

を両方の場合において。 2番目の方法は問題ありませんが、一般的なすべてのブラウザでridパラメータを正しく管理することはできません。

+0

さらに詳しい情報をご提供ください。どのようなジャバークライアントを使用していますか?何を試しましたか?どのようなエラーメッセージやログメッセージなどが届きますか? – Flimzy

答えて

3

別のアプローチは、XEP-0077を使用することですあなたは再接続する必要があります。掃引して、未使用のアカウントを定期的に削除してください。

2

これはjQuery($(document).readyを参照)を使用して行うことができます。この例では、Stropheを使用してXMPPサーバーとのBOSH通信を確立しています。ユーザーはMUCルームに参加します。その後、時にそのアカウントに再度ログイン、ランダムなパスワードを使用して、最初のログイン時に新しいフォームのJID [UUID] @yourhostを作成するには、「インバンド登録」:

function onConnect(status) { 
    if (status == Strophe.Status.CONNECTED) { 
    var joined = false; 
    var participants = {}; 
    $('#events').html('<text class="textmainleft">XMPP connection established. Ready to rock n roll!</text>'); 
    connection.send($pres().c('priority').t('-1')); 
    connection.addHandler(notifyUser, null, 'message', 'groupchat', null, null); 
    connection.send(
     $pres({ 
     to: '[% groupchatroom %]@xmppserver.dom/' + "[% nickname %]" 
     }).c('x', {xmlns: 'http://jabber.org/protocol/muc'})); 
    } else if (status == Strophe.Status.AUTHFAIL) { 
     $(location).attr('href', AUTHFAIL_URL); 
    } else if (status == Strophe.Status.CONNFAIL) { 
    $(location).attr('href', AUTHFAIL_URL); 
    } 
} 

$(document).ready(function() { 
    var user_id = [% user_id %]; 
    connection = new Strophe.Connection(BOSH_SERVICE); 
    connection.connect("[% jid %]", "[% password %]", onConnect); 
    // Additional custom code goes here          
}); 
+0

匿名メソッドにはどのようなjidとパスワードを使用しますか? – tsds

+0

正直言って私は知らない。私はそれがあなたのXMPPサーバーの設定に依存すると思います。私はいつも有効な登録済みのjid/pasを使用します。どのXMPPサーバーを使用していますか?私はいくつかの検索結果が得られると確信しています。 –

+0

あなたの質問では、初めてページを読み込むときに匿名で接続できると言っていますよね? –

関連する問題