[Python-es] Autobahn
Chema Cortes
pych3m4 en gmail.com
Mar Sep 9 12:41:23 CEST 2014
El 1 de septiembre de 2014, 16:10, Nicolas lino <nicolaslino1 en gmail.com>
escribió:
> Buenas, estoy con una consulta de una libreria, Autobahn.
>
> Estoy tratando de utilizar los ejemplos de la docu para generar una
> conexion a un ws server y generar eventos.
>
> La docu esta aca: http://autobahn.ws/python/wamp/programming.html
>
> mi problema viene a que no estoy comprendiendo bien como utilizan la
> libreria, ya que generar una conexion (un runner) y le pasan como parametro
> un componente, pero no llego a comprender como ejecutar ese componete, les
> copio un ejemplo:
>
El "runner" es quien asocia el componente al router WAMP y ejecuta el
componente. Para crear un componente basta con derivar una clase de
"ApplicationSession", de la que tienes dos tipos: twisted y asyncio.
Lo que creo que te confunde es cuando se registran los componentes para ser
llamados remotamente. Se usa para ello "decoradores de clase", que es uno
de los modos de inyectar dependencias que tiene python. Estos decoradores
pueden ser "*inlineCallbacks*" o "*coroutine*", según si se trata de
componentes "*twisted*" o "*asyncio*", respectivamente.
En tu código, tienes mal puesto el decorador, como si fuera de función en
lugar de ser un decorador de clase. Debe estar en la linea anterior a la
definición de la clase:
@inlineCallbacks
class MyComponent(ApplicationSession):
def onJoin(self):
...
Este decorador de clase hace toda la "magia" de modo que solo te tengas que
preocupar de escribir el método *onJoin* para que el componente funcione.
Saludos,
--
Hyperreals *R "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140909/99a17a25/attachment.html>
Más información sobre la lista de distribución Python-es