通知客户端数据库更新

我试图使用Tornado Web套接字服务器来通知我的用户实时更改数据库的时间。 我希望为此使用HTML5网络套接字,尽管大多数浏览器都不支持它们。 没有Tornado软件包附带的演示使用网络套接字,并且它们在文档中未提及,所以我不知道如何开始。 我可以在谷歌上找到的几个例子都不起作用,或者记录不完整。

有没有人有我可以如何使用Tornado将数据推送到客户端的任何示例,当MySQL数据库已更新或类似的东西我可以学习?


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并且建立一个连接到你的tornadio服务器驻留在URL route任何地方你在你的tornadio脚本中指定。


这篇文章使用websockets和redis涵盖了基本的想法。

链接地址: http://www.djcxy.com/p/7781.html

上一篇: Notify client on database update

下一篇: Force HTML5 youtube video