Je débute avec Python et la technologie WAMP m'a beaucoup séduite et j'ai décidé de m'y lancé
Mais au delà de la présentation et des super fonctionnalités, la documention est vraiment mal foutu.
La documentation de asyncio a 6 mois de retard sur celle de Twisted, les exemples Twisted de la documentation ne sont pas les même que ceux du depo Git..etc
Du coup je ne sais pas quel exemple prendre en exemple tellement y'en a de partout qui sont sensé faire la même chose mais qui au final sont tellement différent.
Premier exemple (http://autobahn.ws/)
from twisted.internet import reactor
from twisted.internet.defer import inlineCallbacks
from autobahn.twisted.util import sleep
from autobahn.twisted.wamp import ApplicationSession
class Component(ApplicationSession):
"""
An application component that publishes an event every second.
"""
def __init__(self, realm = "realm1"):
ApplicationSession.__init__(self)
self._realm = realm
def onConnect(self):
self.join(self._realm)
@inlineCallbacks
def onJoin(self, details):
counter = 0
while True:
self.publish('com.myapp.topic1', counter)
counter += 1
yield sleep(1)
Deuxiéme exemple (Github Autobahn)
from twisted.internet.defer import inlineCallbacks
from autobahn.twisted.util import sleep
from autobahn.twisted.wamp import ApplicationSession
class Component(ApplicationSession):
"""
An application component that publishes an event every second.
"""
@inlineCallbacks
def onJoin(self, details):
print("session attached")
counter = 0
while True:
print(".")
self.publish('com.myapp.topic1', counter)
counter += 1
yield sleep(1)
if __name__ == '__main__':
from autobahn.twisted.wamp import ApplicationRunner
runner = ApplicationRunner("ws://127.0.0.1:8080/ws", "realm1")
runner.run(Component)
Ces deux bouts de code sont sensé faire exactement la même chose mais sont différent et c'est un peu comme ça partout sur le projet WAMP (AutobahnX..etc)