2013-10-31 48 views
6

我的想法是爲iOS和Android構建一個簡單的聊天應用程序。無論如何,我的問題與服務器端有關。從我讀過的內容來看,創建一個聊天應用程序的最佳選擇是構建一個套接字。參考數據庫,我的意圖是使用MySQL,爲了選擇其中一種可能性,考慮到這一點也很重要。Socket.IO與Twisted

我的問題是,就可擴展性,速度和安全性而言,這是最好的選擇:使用Twisted或使用與NodeJS構建Python套接字?

我想可能還有其他的可能性來構建一個高效的套接字,但現在我正在考慮這兩個。如果你能給我一些建議,我會很感激。

+2

許多優秀的問題都會根據專家的經驗產生一定程度的意見,但對這個問題的回答往往基於意見而非事實,參考或具體專業知識。 「最佳」選項將取決於太多的參數以這種格式來回答。 – Lix

+0

但是,例如,在速度方面,肯定有客觀的答案。無論如何,聽到與這些圖書館合作過的人的意見不容錯過。 –

+0

這將是糟糕的,因爲完全基於意見的答案在Stack Overflow中不被認爲是有用的。 – Lix

回答

9

比較扭曲和Socket.io比較蘋果和卡車攜帶蘋果。 Twisted是一個爲Python提供面向事件編程功能的庫。在JavaScript中,僅僅是javascript本身(無論是node.js還是網絡瀏覽器,甚至是犀牛)。

更適合的比較是將node.js上的Socket.io與Python上的Socket.io進行比較。雖然上節點的socket.io服務器的一個主要的實現是有幾個爲Python:

(摘自socket.io wiki:https://github.com/learnboost/socket.io/wiki

如果需要,甚至可以使用Twisted在Python中實現自己的socket.io。這裏記錄了socket.io協議:https://github.com/LearnBoost/socket.io-spec。但是,這將打敗socket.io的目的 - 它將實時Web通信的低級細節抽象出來,並允許您專注於編寫業務邏輯。 。

在你部署相同socket.io腳本的瀏覽器,無論你決定寫在服務器用什麼語言的客戶端

至於哪種語言選擇:我的經驗法則是選擇你最熟悉的語言。調試業務邏輯時會遇到足夠的問題。不要使用陌生的語言使其複雜化。

兩種語言都經過了激烈的戰鬥(是的,即使是node.js,考慮到它有多年輕也是令人驚訝的)。 Python例如用於Dropbox等高流量服務的生產。 Node目前正在使用LinkedIn移動等高流量服務。

+0

謝謝@slebetman!你的回答爲我清除了許多事情。 –