2014-02-12 42 views
9

我在一個項目的開始,建立一個實時聊天應用程序,跨越一個網站和一個Android應用程序。因爲我想阻止對各種API調用的連續輪詢,所以我想使用websockets(我沒有經驗),並且在這個過程中,我認爲學習node.js是個好主意。所以我需要開始使用node.js的websockets lib。爲此,我看到有相當多的選項列表。我讀到最多的東西是socket.io。我應該使用哪個node.js套接字引擎?

圍繞着我也讀了,socket.io v0.9很漂亮,我看到多個引用關於engine.io是來自socket.io版本1.0的socket.io的新後端,據推測「角」。所有這些信息都是從2012年開始,雖然(this one for example),當我有一個看看socket.io website,我看到他們仍處於V0.9,這讓我不知道兩件事情:

  • 是socket.io仍積極開發?
  • 是socket.io一個可行的選擇,還是我需要駐留到另一個庫?
  • 哪一個你會推薦輕鬆啓動,或者現在通過使用好的套接字來實現node.js(例如使用net.Socket)?

歡迎所有提示!

+1

在http://stackoverflow.com/questions/16392260/which-websocket-library-to-use-with-node-js答案可能是五個月大,但足夠了到目前爲止回答你的問題。 – chbrown

+0

@chbrown - 我也讀過這個答案,但這主要是所有可能性的列表,而不是真正給出使用哪種方法的優缺點和建議。再次,看到選項是很好的,但是我不清楚哪些選項比其他選項更好/更容易。因此,這個問題。 – kramer65

回答

3

還在積極開發socket.io嗎?

https://github.com/learnboost/socket.io

主:撰寫1小時前

所以它是真正的發展了。

是socket.io一個可行的選擇,還是我需要駐留到另一個庫?

我們在幾個項目中使用socket.io,它是確定的。也許你應該調整你的心跳值。對我們來說,這是:

app.io = io.listen(app); 
logger.info('Setting up basic configuration.'); 
app.io.set('heartbeat timeout', 50); 
app.io.set('heartbeat interval', 20); 
app.io.set('browser client minification', true); 
app.io.set('store', new io.RedisStore(ioStoreSettings)); // also don't use in-memory store, it is hardly not recommended 
+0

感謝您的回答。只是一個後續問題;你是說socket.io是「OK」,這對我來說聽起來並不太熱心。你介意分享爲什麼你認爲它「OK」,而不是「很棒」? – kramer65

+0

@ kramer65我認爲它很棒)清晰。我們遇到了一些麻煩(例如重新連接,或者正確處理未經身份驗證的套接字客戶端),但所有這些都解決了。 – yttrium

+0

好的,謝謝。雖然我通常希望得到一個「它只是有用」的評論,但我認爲我們會選擇socket.io。只是最後一個問題:你一般使用最新的github構建,還是你居住在較舊的構建中? – kramer65