[英]Choosing and deploying a comet server
我想通過 HTTP 將數據推送到瀏覽器而不殺死我的 django/python 應用程序。
我決定使用彗星服務器來代理我的應用程序和客戶端之間的請求(盡管我還沒有真正弄清楚)。
我研究了以下引擎:軌道彗星 ejabberd 碼頭
有沒有人有使用這些服務器和部署它們的經驗? 關於這些主題的任何見解和鏈接都會很棒。 謝謝你。
我建議研究 Twisted,他們的 twisted.web 服務器,以及在 Divmod 上完成的彗星工作。 與傳統的基於線程或進程的服務器相比,它們可以處理更多的並發連接,這正是您對此類事物所需要的。 而且,是的,我已經使用 Twisted 構建了用於 COMET 的系統,同時將其他東西用於更前端的 web 應用程序。 每個部分都做它最擅長的事情,效果很好。
如果你可以運行 Java 我會推薦StreamHub Comet Server 。
首先,考慮到您不需要“殺死”現有應用程序,JavaScript 包含的占用空間非常低,不到 10K。 我用它來推送用戶更新和在我正在構建的社交網站上聊天。 我每天進行 1000 次以上的測試,對 CPU 沒有明顯影響。
其次,在部署時,我遵循了一些示例,並且與使用 CometD 將我的頭撞到牆上相比,我的啟動和運行速度非常快。 如果您遇到任何問題,這里有一個很好的Comet Hello World入門指南和一個Google 群組。
一種選擇是 Netty,基於 JBoss 的 Java NIO 的客戶端-服務器套接字框架。 有關比較和討論,請參見此處。 據報道,它在四核服務器上同時處理 100000 個打開的連接。
如果您正在運行 IIS,您可以查看 WebSync ( http://www.frozenmountain.com/websync ),這是一個符合標准的 (bayeux) 彗星服務器和 .NET/IIS 客戶端。 如果您不想要額外的負載,按需版本是一個 SaaS 選項,可以減輕繁重的工作。
如果您希望將 Django 與 Comet 服務器(Orbited)結合使用,請檢查此項目,我將在此處將 Django 和 Orbited 集成為“干凈”和“真實世界”: Z80791B3AE7002CB8F8C246克萊梅沙/熱點
該項目解決了“現實世界”問題,例如安全性和記錄/過濾/修改在途 Comet 消息等 - 但仍在進行中。
我需要做一些非常相似的事情。 我找到了這個,但還沒有時間正確查看它:
django_evserver 是簡單的 http 服務器,用於 Django 應用程序。 它基於 libevent 庫。 django_evserver 的主要優點是它提供了搶占 django 視圖的方法。 您可以在幾個塊中渲染一個站點,每個塊都可以由不同的 django 視圖處理。
使用這個想法,可以使用 django_evserver 作為 django 應用程序的彗星服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.