0
我是新來堆棧溢出,因爲我經常在這裏找到我一直在尋找的東西。但這一次,我不知道如何處理它。我建立了一個龍捲風websocket服務器,並希望從另一個類訪問websocket線程,但不幸的是,websocket類需要三個不同的參數,並且不能用通常的方式訪問。從另一個類訪問龍捲風websocket類方法
class WebSocketHandler(tornado.websocket.WebSocketHandler):
def open(self):
self.loop()
def on_message(self, message):
#do something
def on_close(self):
#do something else
def loop(self):
pass
def toggle(self):
#execute
class EventHandler:
def __init__(self):
self.listener()
def listener(self):
def callback(channel):
wsHandler = WebSocketHandler()
wsHandler.toggle()
GPIO.add_event_detect(channel, GPIO.RISING, callback = callback, bouncetime = 1000)
def main():
EventHandler()
application = tornado.web.Application([
(r"/", WebSocketHandler),
])
server = tornado.httpserver.HTTPServer(application)
server.listen(8888)
io_loop = tornado.ioloop.IOLoop.current()
io_loop.start()
if __name__ == "__main__":
main()
我有多個類的原因是服務器應該監聽輸入事件,即使沒有客戶端連接。但是我必須通過websocket傳輸輸入數據,如果有的話。我閱讀了關於add_callback方法,但我不確定這是否是一種有用的方法。
我很高興任何解決方案。 非常感謝!
好像你想通了這一點,看到你的答案[這個問題](http://stackoverflow.com/a/40655053/794749)。你應該在這裏回答你自己的問題,然後接受它。 –
是的,但它有點棘手,因爲該方法應該只執行一次;獨立於有多少客戶連接。 – Kjub