2010-08-20 18 views
6

Mi chiedevo se qualcuno qui può fornire alcuni esempi di codice nei seguenti scenari. Sono particolarmente interessato all'utilizzo di xmpppy per farlo poiché sto già usando la libreria per la mia app, ma anche le altre librerie vanno bene. È un peccato che il sito web del progetto xmpppy non abbia alcun campione su questo. Esplorando i documenti API esperti/avanzati, non sono riuscito a capire come farlo, o la chat multiutente (MUC) non è supportata con xmpppy?Come creare MUC e inviare messaggi a MUC esistenti utilizzando Python e XMPP

  • creare un MUC invitando utenti specifici (per esempio 2 o 3) Messaggio

  • invia a un MUC esistente (supponendo che sai che è maniglia MUC JID o nickname)

  • guardare in alto esistente MUC sul server XMPP, ottenendo il JID o il nickname, ecc. Se questo viene fatto ricevendo roster, vogliamo cercare solo i MUC, ignorando gli utenti.

ho trovato una specie di risposta qui, ma poi probabilmente sarei dovuto imparare nuove chiamate API biblioteca e capire come fare i miei scenari di cui sopra in quanto questo campione non copre tutti loro:

pyxmpp: quick tutorial for creating a muc client?

sono davvero cercando di fare un generatore di carico che pompa messaggi a MUCS e la creazione di grandi MUCS con molti partecipanti. Ho già ottenuto la parte per il pompaggio dei messaggi ai destinatari degli utenti.

risposta

5

Anche se non conosco l'interfaccia MUC specifica, xmpppy supporta i messaggi personalizzati, quindi supporta l'intero XMPP.

Per unire la chat, è necessario inviare la presenza stranza, conn.send(xmpp.Presence(to='{0}/{1}'.format(room, nick)))

Per inviare un messaggio a chattare:

stranza = "<message to='{0}' type='groupchat'><body>{1}</body></message>".format(room, text) 
    conn.send(stranza) 

Per quanto riguarda la creazione di nuova chat o guardare in su in roster, non lo faccio avere il codice a portata di mano, ma è facile scrivere nello stesso modo, basta guardare fino stranzas necessari XEPS:

http://xmpp.org/extensions/xep-0045.html#createroom

http://xmpp.org/extensions/xep-0045.html#disco-rooms

http://xmpp.org/extensions/xep-0045.html#invite

5

Xmpppy fa supporto utilizzando i servizi MUC, ma il supporto è molto semplice e sarà necessario un po 'di codice aggiuntivo per gestire più camere.

Per "unirsi" a una stanza MUC è necessario trasmettere la propria presenza al JID.

conn.send(xmpp.Presence(to="%s/%s" % (room, nickname))) 

Quindi, per inviare messaggi, li si invia utilizzando il tipo di messaggio 'groupchat' al JID stanza.

msg = xmpp.protocol.Message(body=text) 
msg.setTo(room) 
msg.setType('groupchat') 
conn.send(msg) 

Come per la domanda relativa alla ricerca di stanze MUC, ciò verrà effettuato tramite la scoperta dei servizi.

+0

sì hai ragione usando la scoperta possiamo trovare l'elenco delle camere, ma come? –

Problemi correlati