我有一个Python WebSocket服务器。当它接收到一条消息时,它可以返回响应。
import tornado.web
import tornado.websocket
import tornado.ioloop
class WebSocketHandler(tornado.websocket.WebSocketHandler):
def open(self):
print("New client connected")
self.write_message("You are connected")
def on_message(self, message):
self.write_message(u"You said: " + message)
def on_close(self):
print("Client disconnected")
def check_origin(self, origin):
return True
application = tornado.web.Application([
(r"/", WebSocketHandler),
])
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
然而,在 WebSocket 接收到信息前无法主动发送信息。那么,如何主动发送信息呢?例如,计时器若 10 秒内未接收到信息,则主动发送 "Are you sleeping?"。
我想使用 WebSocket 制作聊天机器人。我选用 tornado 和 websocket 是因为这是我了解的方法,如果您知道更好的方法,请告诉我。