Я сейчас использую iPython для интерактивной настройки витой сети. Скрипт, который я запускаю в iPython, описывает лучшее из того, что я должен сделать:
import router, pdb
# creates nodes which encapsulate RandomVector and VectorAdder objects
a = router.LocalNode(router.RandomVector, '/topic/a_c')
b = router.LocalNode(router.RandomVector, '/topic/b_c')
c = router.LocalNode(router.VectorAdder)
c.registerAsListener('/topic/a_c')
c.registerAsListener('/topic/b_c')
def conn():
global a
global b
a.onConnect()
b.onConnect()
router.r.loadOnConnect(conn)
router.STOMPconnect(router.r)
router.reactor.run()
Что происходит, так это то, что conn () передается протоколу Twisted, который запускает conn () каждый раз, когда соединение теряется.
onConnect выглядит так:
def onConnect(self):
self._lc = LoopingCall(self.advance)
self._lc.start(1)
Всякий раз, когда запускается onConnect, я получаю сообщение об ошибке:
TypeError: 'необязательный метод onConnect () должен вызываться с экземпляром RandomVector в качестве первого аргумента (вместо этого ничего не получил)'
Кто-нибудь знает, почему это происходит?