Herramientas de usuario

Herramientas del sitio


fw:twisted

¡Esta es una revisión vieja del documento!


Tabla de Contenidos

Twisted

Es un framework para la programación de software en red, soporta un gran número de protocolos y tipos de sockets y está basado en la implementación de eventos. Esto es, el desarrollador escribe pequeños callbacks que son llamados por el framework.

Conceptos

  • twister.internet.reactor: Un reactor es el bucle de eventos dentro de Twisted, el que dirige la aplicación dentro de este Framework. Provee helpers para el trabajo con networking, threading, eventos, dispatching (eventos en background)…
  • twister.internet.BaseProtocol: Una implementación base de un twister.internet.Protocol, es decir, una estructura de funcionamiento.
  • twister.internet.Factory: Es el elemento a partir del que se produce, se crea o se utiliza un protocolo, pueden haber de cliente (ClientFactory) o de servidor (ServerFactory).

Un Protocol representa una conexión, si se desarrolla un server y se conectan cien clientes se crearán cien instancias de esta clase y desaparecerán cuando el cliente se desconecte. Un protocolo provee la funcionalidad básica para la comunicación y provee distintos métodos que al heredar de esta clase pueden ser sobreescritos y utilizarlos.
ServerFactory es el encargado de crear los protocolos, cada vez que un cliente conecte se instancia un objeto Protocol.

Ejemplos

Por ejemplo, en el siguiente código se crea un protocolo heredando de la clase twisted.internet.protocol.Protocol, este es usado por una factoria de servidor como TCP:

from twisted.internet.protocol import Protocol, ServerFactory
from twisted.internet import reactor
 
class BasicProtocol(Protocol):
    def connectionMade(self):
        print "New Connection."
        self.transport.loseConnection()
 
factory = ServerFactory()
factory.protocol = BasicProtocol
reactor.listenTCP(14000, factory)
reactor.run()

Otros

fw/twisted.1257186130.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)