通知客户端数据库更新
我试图使用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