我正在寻找一种修改 Tornado Websockets 聊天演示的方法,以便通过聊天与服务器上的串行端口进行通信。下面显示的是发送消息时调用的方法(?)。我可以写到串行发送消息的正文到serial.write()。但问题是我只能获得一次串行反馈。然而,在我当前的应用程序中,串行可能会发送更多的数据,而不仅仅是在被交谈时。
...
import serial
serial = serial.Serial("COM3", 57600)
...
def on_message(self, message):
test = ""
logging.info("got message %r", message)
parsed = tornado.escape.json_decode(message)
serial.write(parsed["body"] + "\n")
logging.info("SENT " + parsed["body"] + "\n")
test = serial.readline()
chat = {
"id": str(uuid.uuid4()),
"body": test,
}
chat["html"] = self.render_string("message.html", message=chat)
ChatSocketHandler.update_cache(chat)
ChatSocketHandler.send_updates(chat)
有没有办法不断轮询串行并同时处理 websockets IO?此外,如果有一个更简单的替代 Tornado 的实时多页面更新,我不会反对。虽然我很喜欢龙卷风。