2013-12-22 41 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服务器,然后使用连接功能。 –