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

Python Web套接字/Tornado-在数据库更新时通知客户端,python,tornado,websocket,Python,Tornado,Websocket,我正在尝试使用TornadoWebSocket服务器在实时更改数据库时通知我的用户。我希望使用HTML5WebSockets来实现这一点,尽管大多数浏览器不支持它们。Tornado包附带的演示没有一个使用web套接字,文档中也没有提到它们,所以我不知道如何开始。我能在谷歌上找到的几个例子要么不起作用,要么记录得很差 有没有人举过我可以在MySQL数据库更新后使用Tornado将数据推送到客户端的例子,或者我可以从中学习的类似东西?这篇文章很好地介绍了基本思想。我已经成功地使用了客户端和服务器端S

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


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

这篇文章很好地介绍了基本思想。

我已经成功地使用了客户端和服务器端
Socket.IO
提供对WebSocket的抽象,并在浏览器不支持WebSocket(长轮询、flash Socket等)时提供回退


为了使用它,您只需要在监控数据库的tornadio文档中编写一个tornadio脚本,然后在您的网页中包含socket.io JavaScript,并让它与tornadio服务器所在的URL
route
上的tornadio服务器建立连接

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

不过,在龙卷风中,WebSocket非常容易:

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);
  };

有关更多信息,请参阅来源:

链接已断开!