How to learn more XMPP/Jabber command
I am using ejabberd as a chatting server now. And I am writing a client to chat and register new user. Right now, I know some of the protocol to register a new account, like sending the following command to register new user:
<iq type="set"><query xmlns="jabber:iq:register"><username>wfwfewegwegwewefg</username><password>wfwefwefwefwef</password></query></iq>
My question is: I want to learn more command/protocol to talk to the server. So where can I learn more? For example, How can I ask the server if the user name exists or not. How can I ask the server to unregister a 开发者_开发问答user.
What is the key word I should search for? Should I search for Jabber XMPP protocol or what?
If you are sending queries from an admin account to do these things, look at XEP-0133: Service Administration, which is based on XEP-0050: Ad-hoc commands.
If you mean more from a general user perspective, well you typically can't see if a user account exists (this would leave the door open for spammers to use it for directory harvesting), but you can unregister an account if you own it, see XEP-0077: In-band Registration for more information.
There are many more standard extensions for all kinds of things at http://xmpp.org/extensions/ - some are under development, some are finalized and stable.
If you use ejabberd, there is command line utility ejabberdctl
that will solve your questions.
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
I found the book "XMPP: The Definitive Guide" useful to get an overview of the protocol and its terminology. The XEPs are good as references after that.
精彩评论