我现在正在使用ejabberd作为聊天服务器。 我正在写一个客户聊天和注册新用户。 现在,我知道一些注册新帐户的协议, 比如发送以下命令来注册新用户:
<iq type="set"><query xmlns="jabber:iq:register"><username>wfwfewegwegwewefg</username><password>wfwefwefwefwef</password></query></iq>
我的问题是: 我想学习更多的命令/协议来与服务器通信。 那我在哪里可以了解更多? 例如,如何询问服务器是否存在用户名。 如何让服务器取消注册用户。
我应该搜索的关键词是什么? 我应该搜索Jabber XMPP协议还是什么?
答案 0 :(得分:1)
如果您要从管理员帐户发送查询来执行这些操作,请查看基于XEP-0133: Service Administration的XEP-0050: Ad-hoc commands。
如果从一般用户的角度来看你的意思更多,那么你通常无法看到用户帐户是否存在(这会让垃圾邮件发送者将其用于目录收集),但你可以如果您拥有帐户,请取消注册帐户,有关详细信息,请参阅XEP-0077: In-band Registration。
http://xmpp.org/extensions/还有更多针对各种事物的标准扩展 - 有些正在开发中,有些已经完成并且稳定。
答案 1 :(得分:1)
如果您使用ejabberd,则可以使用命令行实用程序ejabberdctl
来解决您的问题。
user@server:~$ sudo /opt/ejabberd-2.1.8/bin/ejabberdctl
Usage: ejabberdctl [--node nodename] [--auth user host password] command [options]
Available commands in this ejabberd node:
backup file Store the database to backup file
connected_users List all established sessions
connected_users_number Get the number of established sessions
delete_expired_messages Delete expired offline messages from database
delete_old_messages days Delete offline messages older than DAYS
dump file Dump the database to text file
dump_table file table Dump a table to text file
export_piefxis dir Export data of all users in the server to PIEFXIS
files (XEP-0227)
export_piefxis_host dir host Export data of users in a host to PIEFXIS files
(XEP-0227)
get_loglevel Get the current loglevel
help [--tags [tag] | com?*] Show help (try: ejabberdctl help help)
import_dir file Import users data from jabberd14 spool dir
import_file file Import user data from jabberd14 spool file
import_piefxis file Import users data from a PIEFXIS file (XEP-0227)
incoming_s2s_number Number of incoming s2s connections on the node
install_fallback file Install the database from a fallback file
load file Restore the database from text file
mnesia [info] show information of Mnesia system
mnesia_change_nodename oldnodename newnodename oldbackup newbackup Change the erlang node name in a backup file
outgoing_s2s_number Number of outgoing s2s connections on the node
register user host password Register a user
registered_users host List all registered users in HOST
rename_default_nodeplugin Update PubSub table from old ejabberd trunk SVN to
2.1.0
reopen_log Reopen the log files
restart Restart ejabberd
restore file Restore the database from backup file
set_master nodename Set master node of the clustered Mnesia tables
status Get ejabberd status
stop Stop ejabberd
stop_kindly delay announcement Inform users and rooms, wait, and stop the server
unregister user host Unregister a user
update module Update the given module, or use the keyword: all
update_list List modified modules that can be updated
user_resources user host List user's connected resources
Examples:
ejabberdctl restart
ejabberdctl --node ejabberd@host restart
Commands to start an ejabberd node:
start Start an ejabberd node in server mode
debug Attach an interactive Erlang shell to a running ejabberd node
live Start an ejabberd node in live (interactive) mode
答案 2 :(得分:0)
我发现这本书"XMPP: The Definitive Guide"对于概述协议及其术语非常有用。之后的XEP很好作为参考。