2012-02-27 19 views
7

Estoy interesado en desarrollar un motor de chat usando XMPP y quiero usar Python para mi desarrollo web. Aunque, XMPP será independiente de este trabajo de Python, pero en caso de que quiera escribir el contenedor, entonces tendré que usar ese lenguaje.Servidor XMPP para Python

Entonces, quiero saber qué servidor XMPP (preferiblemente de código abierto) debo ir con?

¿Y qué bibliotecas de python son buenas para usar el servicio XMPP?

Respuesta

13

El único esfuerzo (mantenido) para un servidor XMPP es wokkel que se basa en Twisted. Dicho esto, wokkel carece de muchas funciones que ofrecen otros servidores que no sean python. Además, wokkel tiene como objetivo proporcionar la biblioteca para construir un servidor y requeriría una cantidad no trivial de esfuerzo para construir realmente un servidor XMPP completamente funcional que brinde soporte para XEP comunes.

Por el lado bueno: Realmente no necesitas un servidor de python. Puedes usar ejabberd, tigase, firefire (nombra aquí tu preferencia). Puede escribir toda su lógica/protocolos y componentes personalizados en python y conectarlos sin problemas a ese servidor. Para ese uso en particular, wokkel y Twisted son una excelente opción. Otra gran biblioteca es SleekXMPP.

+1

Punto tomado y gracias por su respuesta. En realidad, quiero implementarlo a gran escala, así que decidí ir con ejabberd. Lo he instalado y configurado. Pero como soy nuevo en esto, no puedo comenzar con las cosas con bastante facilidad. El siguiente paso posiblemente sea instalar un cliente. Pero no puedo empezar por dónde empezar, como un programa HelloWorld. Entonces, ¿puedes guiarme para trabajar en eso? Gracias por adelantado. – Him

+2

Aquí hay un ejemplo de un componente para wokkel: http://metajack.im/2008/09/25/an-xmpp-echo-bot-with-twisted-and-wokkel/ y aquí está cómo construir clientes simples con él : http://wokkel.ik.nu/wiki/XMPPClients. Buena suerte, parecerá complejo al principio, pero las cosas se aclararán después;) – ggozad

+0

ejabberd Creo que requiere erlang para extenderse, y erlang es un pato extraño de un lenguaje (aunque innatamente adecuado para una implementación a gran escala), y parece ser el hijo mutante de prolog y haskell. ¿Tienes un grado de ciencia? Si no, podría ser un poco de lenguaje inductor de migrañas para aprender ... Sin embargo, tiene una interfaz xml-rpc que puede hacer la mayoría de las tareas requeridas de scripting (usando el wrapper de python) pero no creo que pueda hacer routing, que es un problema. – Shayne

Cuestiones relacionadas