2013-12-22 82 views
1

我知道有來的strophe帶登記和XEP 0077相關的許多其他問題,但我的問題是:Strophe.js帶註冊

我試圖在正確的形式來寫以下節:

<iq to='marlowe.shakespeare.lit' type='set'> 
    <query xmlns='jabber:iq:register'> 
    <username>juliet</username> 
    <password>R0m30</password> 
    <name>JJ</name> 
    </query> 
</iq> 

但我無法正確寫入它。我被困在如何在javascript中編寫用戶名,密碼和名稱字段。

這是我寫到目前爲止:

connection.sendIQ($iq({to: "server", type: "set"}).c('query', {xmlns: "jabber:iq:register"}).c) 

任何幫助,不勝感激!

回答

1

我知道這是一箇舊的帖子,但我認爲Strophe Plugin for In-Band Registration正是你正在尋找!

<head> 
<!-- ... --> 
<script type="text/javascript" src="strophe.min.js"></script> 
<script type="text/javascript" src="strophe.register.js"></script> 
<!-- ... --> 
</head> 

的Javascript:您註冊的Jabber服務器的用戶後

var callback = function (status) { 
    if (status === Strophe.Status.REGISTER) { 
     connection.register.fields.username = "juliet"; 
     connection.register.fields.password = "R0m30"; 
     connection.register.submit(); 
    } else if (status === Strophe.Status.REGISTERED) { 
     console.log("registered!"); 
     connection.authenticate(); 
    } else if (status === Strophe.Status.CONNECTED) { 
     console.log("logged in!"); 
    } else { 
     // every other status a connection.connect would receive 
    } 
}; 
connection.register.connect("example.com", callback, wait, hold); 
0

如果您要使用JavaScript,請使用Strophe和連接功能。

connection.connect(jid,password,cb);

帶內註冊用於非JavaScript使用。你會組裝正文並將字符串發送到你的jabber服務器。例如,請參閱http://metajack.im/2008/10/03/getting-attached-to-strophe/

+0

connection.connect才能使用。我的問題是如何使用Strophe註冊用戶。感謝您的回覆。 – firewall

+0

據我所知,你不能使用Strophe/Javascript註冊。用戶必須已經在jabber服務器上註冊。查看我答案的最後部分。 XEP 0077可以由您的後端代碼處理,然後可以將RID,SID和JID傳遞給Strophe進行附加。或者您可以手動將用戶添加到您的jabber服務器,然後使用連接功能。 –