2012-02-19 110 views
1

我試圖做一個實時消息應用程序。將有2個不同的服務器(node.js和django),當用戶向另一個用戶發送消息時,消息將存儲在數據庫中,而不是node.js將向接收者發送消息,如「您有新消息!」。爲此,我打算打電話給哪個node.js服務。所以node.js和django會互相交互。什麼是最好的方式發送消息到指定客戶端? (我把客戶的身份證放在一個合適的列表中。)Django node.js socket.io

你對此有何看法?這是否有效?或者你建議更好的方法來做到這一點?

+0

node.js服務器的用途究竟是什麼?爲什麼你想從django中取出這些功能並將其放到那裏? – 2012-02-19 18:08:43

+0

Django的本性不支持與套接字的交互。我知道有名爲django-socketio的實現,但我不確定如何使用它。 – Gpost 2012-02-19 19:15:43

+0

你能詳細闡述一下你想做什麼嗎?這是一個基於Web的應用程序嗎?如果沒有,爲什麼Django?如果是的話,你指的是什麼插座? WebSockets的? – 2012-02-19 19:40:11

回答

-1

現在我對你要做的事情有了更多的瞭解,在這裏,我的回答是,請記住,這隻反映了我的觀點,我敢打賭,其他人會爭論它。

這一切都與您期望在您的應用程序中擁有多少流量有關。如果它不是一個高流量的應用程序,那麼與開發相比,運行時間的效率是微不足道的,因此選擇您感覺最舒適的技術。

如果你確實瞄準高流量的應用程序,那麼我相信這個設置不是很好。 首先,雖然基於http的服務器之間的通信看起來很舒服,但您正在處理http over tcp的開銷(因爲http基於tcp)。因此,常規的tcp套接字可以更好地擴展,但另一方面,如果你使用python編寫套接字服務器,那麼你可以從django的相同進程中運行它,然後將它用作django中的對象(你正在進入領域這裏的線程)。但是,如果您有幾個Web實例,那就很有問題了,這又取決於您期望的流量。

至於實現消息服務器的選擇,我從來沒有測試過node.js,但我相信在基準測試中它不會比較用erlang或Java NIO編寫的東西。例如:JAVA AIO (NIO.2) VS NODEJS