2012-02-27 22 views
7

Sono interessato allo sviluppo di un motore di chat utilizzando XMPP e voglio usare Python per il mio sviluppo web. Sebbene, XMPP sia indipendente da questo lavoro Python ma nel caso in cui voglia scrivere wrapper, allora dovrò usare quel linguaggio.Server XMPP per Python

Quindi, voglio sapere quale server XMPP (preferibilmente open source) dovrei usare?

E quali librerie Python sono utili per l'utilizzo del servizio XMPP?

risposta

13

L'unico (mantenuto) sforzo per un server XMPP è wokkel che si basa su Twisted. Detto questo, wokkel non ha molte funzionalità che gli altri server non Python danno. Inoltre, wokkel mira a fornire alla biblioteca la creazione di un server e richiederebbe una quantità non trascurabile di sforzi per costruire effettivamente un server XMPP pienamente funzionale che fornisca supporto per XEPs comuni.

Dal lato positivo: non è davvero necessario un server python. Puoi usare un ejabberd, tigase, openfire (assegna qui la tua preferenza). Puoi scrivere tutte le tue logiche/protocolli e componenti personalizzati in python e collegarli senza problemi a quel server. Per quel particolare uso, wokkel e Twisted sono una scelta eccellente. Un'altra grande libreria è SleekXMPP.

+1

Punto preso e grazie per la risposta. In realtà, voglio distribuirlo su larga scala, quindi ho deciso di andare con ejabberd. L'ho installato e configurato. Ma poiché sono nuovo, non sono in grado di iniziare abbastanza facilmente le cose. Il prossimo passo è possibilmente installare un client. Ma non sono in grado di iniziare da dove iniziare come un programma HelloWorld. Quindi, puoi guidarmi a lavorare su questo. Grazie in anticipo. – Him

+2

Ecco un esempio di un componente per wokkel: http://metajack.im/2008/09/25/an-xmpp-echo-bot-with-twisted-and-wokkel/ ed ecco come creare semplici client con esso : http://wokkel.ik.nu/wiki/XMPPClients. Buona fortuna, sembrerà complessa all'inizio, ma le cose diventeranno chiare dopo;) – ggozad

+0

ejabberd credo che richieda l'estensione per estendersi, ed erlang è una strana anatra di una lingua (benché innatamente adatta per l'implementazione su larga scala), e sembra essere il figlio mutante di prolog e haskell. Hai una laurea in scienze informatiche? In caso contrario, potrebbe essere un po 'migrane che induce il linguaggio ad apprendere. Ha tuttavia un'interfaccia xml-rpc che può fare la maggior parte delle attività richieste dallo scripting (usando il wrapper python) ma non credo che possa fare routing che è un problema. – Shayne