簡體   English   中英

Python Comet Server

[英]Python Comet Server

我正在構建一個具有實時源的Web應用程序(類似於Facebook的新聞源),我希望通過長輪詢機制進行更新。 我理解使用Python,我的選擇幾乎要么使用Stackless(從他們的Comet wsgi示例構建)或Cometd + Twisted。 遺憾的是,關於這些選項的文檔很少,我無法在線找到關於Python上彗星生產規模用戶的好信息。

有沒有人在生產系統中成功實現Python上的彗星? 你是怎么做的,我在哪里可以找到實現自己的資源?

Orbited似乎是一個很好的解決方案。 雖然沒試過。


更新 :過去2。5年內情況發生了變化。

我們現在在所有主流瀏覽器中都有websockets,除了IE(自然)和一些非常好的抽象,它提供了許多模擬實時通信的方法。

我建議你應該使用StreamHub Comet服務器 - 它被很多人使用 - 我個人將它用於我運行的幾個Django站點。 你需要編寫一點點Java來處理流 - 我用Jython做了這個。 前端代碼是一些真正簡單的Javascript a la:

StreamHub hub = new StreamHub();
hub.connect("http://myserver.com/");
hub.subscribe("newsfeed", function(sTopic, oData) { alert("new news item: " + oData.Title); });

文檔非常好 - 當你試圖開始使用Cometd等人的稀疏文檔時,我遇到了類似的問題。 首先,我將閱讀Comet和StreamHub入門 ,下載並查看一些示例如何工作並參考API文檔,如果您需要:

這是一個功能齊全的例子,結合Django,Orbited和Twisted來創建一個實時(Comet)應用程序: http ://github.com/clemesha/hotdot使用Python。

我已經完成了大量的使用扭曲的API這樣的東西,其中大部分都可以在我的github帳戶上找到。

大多數是客戶端,但晃動是我寫的服務器做一個實時便宜的pubsub類的東西。 通過允許簡單的流復制,它可以在某種程度上水平擴展。 當你堅持使用普通的HTTP時,寫入有點不同,但是我已經通過它推送了一個相當大的數量用於演示。

否則,您擁有大多數XMPP服務器支持的全面BOSH,並允許您將消息分發與Web前端分離。

我還沒有這樣做,但是這個人已經寫了一篇關於它的好文章,用Django的例子和指針(我沒有檢查過)到其他框架。

orbited和redis解決方案很不錯,但是當你有類似谷歌發布的PubSubHubbub這樣的東西時,它們就不再具有相關性了。 這使得很容易成為給定Feed的發布者或訂閱者。 http://code.google.com/p/pubsubhubbub/

這是一個用gevent和Django進行長輪詢的例子

它使用Stackless打包的greenlet -stack切換功能作為CPython擴展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM