2010-06-05 4 views
0

J'utilise ejabberd comme serveur de discussion maintenant. Et j'écris un client pour discuter et enregistrer un nouvel utilisateur. En ce moment, je sais que certains du protocole d'enregistrement d'un nouveau compte, comme l'envoi de la commande suivante pour enregistrer un nouvel utilisateur:Comment en savoir plus Commande XMPP/Jabber

<iq type="set"><query xmlns="jabber:iq:register"><username>wfwfewegwegwewefg</username><password>wfwefwefwefwef</password></query></iq> 

Ma question est: Je veux en savoir plus commande/protocole pour parler le serveur. Alors, où puis-je en apprendre plus? Par exemple, comment puis-je demander au serveur si le nom d'utilisateur existe ou non. Comment puis-je demander au serveur de désinscrire un utilisateur.

Quel est le mot-clé que je devrais rechercher? Dois-je rechercher le protocole Jabber XMPP ou quoi?

Répondre

1

Si vous envoyez des requêtes à partir d'un compte administrateur pour effectuer ces opérations, consultez XEP-0133: Service Administration, qui est basé sur XEP-0050: Ad-hoc commands.

Si vous voulez dire plus d'un point de vue utilisateur général, bien général, vous ne pouvez pas voir si un compte d'utilisateur existe (ce qui laisserait la porte ouverte pour les spammeurs d'utiliser pour la récolte de répertoire), mais vous pouvez désenregistrer un compte si vous en êtes propriétaire, voir XEP-0077: In-band Registration pour plus d'informations.

Il existe beaucoup plus d'extensions standard pour toutes sortes de choses au http://xmpp.org/extensions/ - certaines sont en cours de développement, d'autres sont finalisées et stables.

1

Si vous utilisez ejabberd, il y a l'utilitaire de ligne de commande ejabberdctl qui résoudra vos questions.

[email protected]:~$ 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 [email protected] 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 
0

Je trouve le livre "XMPP: The Definitive Guide" utile pour obtenir une vue d'ensemble du protocole et de sa terminologie. Les XEP sont bons comme références après cela.

Questions connexes