私はgithub コードの基本的な wamp pubsub の例に従っています:
この例では、クラス内からメッセージを発行します。
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)
コードの他の場所からこの接続を介してメッセージを発行できるように、参照を作成したいと考えています。myobject.myconnection.publish('com.myapp.topic1', 'My message')
この同様の質問から、答えは、接続時に次のように設定する必要があるようself.factory.myconnection = self
です。私はこれを複数回試しましたが、成功しませんでした。
工場出荷時のセットアップ部分は次のとおりです。
## create a WAMP application session factory
##
from autobahn.twisted.wamp import ApplicationSessionFactory
session_factory = ApplicationSessionFactory()
## .. and set the session class on the factory
##
session_factory.session = Component
## create a WAMP-over-WebSocket transport client factory
##
from autobahn.twisted.websocket import WampWebSocketClientFactory
transport_factory = WampWebSocketClientFactory(session_factory, args.wsurl, debug = args.debug)
transport_factory.setProtocolOptions(failByDrop = False)
## start a WebSocket client from an endpoint
##
client = clientFromString(reactor, args.websocket)
client.connect(transport_factory)
クラス内から設定した参照はどこに添付されますか? へclient
?へtransport_factory
?へsession_factory
?