Web套接字/Tornado-在数据库更新时通知客户端



当数据库发生更改时,我正试图使用Tornado web套接字服务器实时通知用户。我希望使用HTML5网络套接字来实现这一点,尽管大多数浏览器都不支持它们。Tornado软件包附带的演示都没有使用web套接字,文档中也没有提到它们,所以我不知道如何开始。我在谷歌上能找到的少数几个例子要么不起作用,要么记录不足。

有没有人举过我如何在MySQL数据库更新后使用Tornado将数据推送到客户端的例子,或者我可以从中学习类似的东西?

Lee的答案很好,如果你需要支持旧的浏览器,你可能需要socket.io。

Websockets在龙卷风中很容易:

import tornado.websocket
  class EchoWebSocket(tornado.websocket.WebSocketHandler):
      def open(self):
          print "WebSocket opened"
      def on_message(self, message):
          self.write_message(u"You said: " + message)
      def on_close(self):
          print "WebSocket closed"

然后将其作为任何其他处理程序进行路由,并在您的视图中包含Websocket Javascript:

  var ws = new WebSocket("ws://localhost:8888/websocket");
  ws.onopen = function() {
     ws.send("Hello, world");
  };
  ws.onmessage = function (evt) {
     alert(evt.data);
  };

有关更多信息,请参阅来源:https://github.com/facebook/tornado/blob/master/tornado/websocket.py

我已经成功地在服务器端使用了socket.io客户端和tornadio。Socket.IO提供了对websocket的抽象,并在浏览器不支持websocket时提供回退(长轮询、闪存套接字等)

为了使用它,您只需要在监控数据库的tornadio文档中编写一个tornadio脚本,然后在您的网页中包含socket.io JavaScript,并让它与您的tornadioserver所在的任何位置建立连接,该位置位于您在tornadioscript中指定的URLroute

这篇使用websockets和redis的文章很好地涵盖了基本思想。

相关内容

  • 没有找到相关文章

最新更新