如何了解更多 XMPP/Jabber 命令
Posted
技术标签:
【中文标题】如何了解更多 XMPP/Jabber 命令【英文标题】:How to learn more XMPP/Jabber command 【发布时间】:2010-06-05 15:56:37 【问题描述】:我现在使用 ejabberd 作为聊天服务器。 我正在写一个客户端来聊天和注册新用户。 现在,我知道一些注册新帐户的协议, 比如发送以下命令注册新用户:
<iq type="set"><query xmlns="jabber:iq:register"><username>wfwfewegwegwewefg</username><password>wfwefwefwefwef</password></query></iq>
我的问题是: 我想了解更多与服务器通信的命令/协议。 那么我在哪里可以了解更多信息? 例如,如何询问服务器用户名是否存在。 如何让服务器注销用户。
我应该搜索什么关键字? 我应该搜索 Jabber XMPP 协议还是什么?
【问题讨论】:
【参考方案1】:如果您从管理员帐户发送查询以执行这些操作,请查看基于 XEP-0050: Ad-hoc commands 的 XEP-0133: Service Administration。
如果您从一般用户的角度来看更多的意思,那么您通常无法查看用户帐户是否存在(这会为垃圾邮件发送者打开大门,以便将其用于目录收集),但您可以 em> 如果您拥有帐户,请取消注册,请参阅XEP-0077: In-band Registration 了解更多信息。
http://xmpp.org/extensions/ 上还有更多适用于各种事物的标准扩展 - 有些正在开发中,有些已完成且稳定。
【讨论】:
【参考方案2】:如果您使用 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
【讨论】:
【参考方案3】:我发现这本书 "XMPP: The Definitive Guide" 有助于了解协议及其术语的概述。 XEP 可以作为之后的参考。
【讨论】:
以上是关于如何了解更多 XMPP/Jabber 命令的主要内容,如果未能解决你的问题,请参考以下文章
龙卷风 Web 应用程序中的 Python xmpp jabber 客户端
向 XMPP/Jabber 会议室发送消息的简单方法? (Shell 或 Python,Debian wheezy)