2011-05-25 103 views
10

我試圖使用Tornado網絡套接字服務器來通知我的用戶實時更改數據庫時。我希望爲此使用HTML5網絡套接字,儘管大多數瀏覽器都不支持它們。沒有Tornado軟件包附帶的演示使用網絡套接字,並且它們在文檔中未提及,所以我不知道如何開始。我可以在谷歌上找到的幾個例子都不起作用,或者記錄不完整。網絡套接字/龍捲風 - 通知客戶端數據庫更新

有沒有人有我如何使用Tornado將數據推送到客戶端時的任何示例,當MySQL數據庫已更新或類似的東西我可以學習?

回答

8

李的答案是好的,如果你需要支持舊瀏覽器,你可能需要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" 

然後將其路由任何其他處理程序,包括網頁套接字中的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

6

我已經成功在服務器端使用socket.io客戶端和。 Socket.IO提供了一個對websocket的抽象,並提供瞭如果瀏覽器不支持websocket(長查詢,閃存套接字等)的情況下的回退。

爲了使用它,您只需要編寫一個監視數據庫的tornadio文檔的tornadio腳本,然後在您的網頁中包含socket.io JavaScript並建立與tornadio服務器駐留的任何地方的連接在您的tornadio腳本中指定的URL route

相關問題