2014-06-26 136 views
1

我一直在理解socket.io究竟是什麼以及它在整個客戶端和服務器之間的整體持久通信中的作用。在我腦海中出現的一些基本問題是:socket.io客戶端和socket.io服務器有什麼區別? socket.io的替代品?

  • node.js和socket.io服務器是不同的做同樣的事情嗎?像lighthttpd和apache一樣?
  • 爲什麼我應該使用socket.io服務器,如果我有node.js?
  • 我可以使用socket.io客戶端與PHP等另一種服務器端編程語言嗎?
  • 是否有使用socket.io客戶端的替代方法?
  • 是socket.io客戶端只是另一個用於websocket通信的JavaScript庫嗎?

謝謝:)

回答

1

node.js的是,做同樣的事情socket.io服務器不同的方式?像lighthttpd和apache一樣?

Socket.io是node.js的

我爲什麼要使用socket.io服務器,如果我有node.js的框架/庫?

它的框架設計爲雙向交流,如果你想

我可以使用socket.io客戶端與其他服務器端編程語言如PHP使用它呢?

技術上是的。但是,那麼你將不得不重新實現其他語言的socket.io服務器以匹配它。

是否有其他方法可以使用socket.io客戶端?

很多,在[這裏把你的語言]

是socket.io客戶端只是另一個JavaScript的WebSocket的通信庫谷歌的WebSocket /即時通訊?

Socket.io客戶端是一個JavaScript庫compatibile與socket.io服務器(其是JavaScript庫,以及,僅在服務器側,即Node.js的)

3

的Socket.IO服務器接受連接來自Socket.IO客戶端。這與任何其他服務器(例如Apache之類的Web服務器)接受客戶端連接(如Internet Explorer等Web瀏覽器)沒有任何區別。

Node.js是一個構建在V8 JavaScript引擎之上的平臺,它帶有一個通常用於Web和網絡應用程序的便捷庫。 Socket.IO是一個類似於網絡套接字的通信包裝器和RPC,它使服務器和客戶端能夠通過各種傳輸(從長輪詢JSON到真正的Web套接字)進行通信。一般來說,Socket。IO服務器代碼在運行於Node.js之上的JavaScript應用程序中運行,並且Socket.IO客戶端在Web瀏覽器中的JavaScript中運行。 (請注意,您可以可以在您的Node.js應用程序中運行Socket.IO客戶端,以前我曾用它作爲多個Node.js應用程序之間的快速RPC。)

有Socket.IO客戶端可用於許多語言,是的,我相信有一個PHP的,但我沒有親自使用它。

如果要與Socket.IO服務器通信,則必須使用Socket.IO客戶端。這是一個獨立的協議。

1

node.js和socket.io服務器是不同的做同樣的事情嗎?

SocketIO實際上是一種I/O引擎,它允許在客戶端和服務器之間進行實時通信,與傳統的HTTP請求不同。

爲什麼我應該使用socket.io服務器,如果我有node.js?

由於兩者都是不同的,所以我們無法比較。

我可以在另一個服務器端編程語言(如PHP)中使用socket.io客戶端嗎?

不,因爲socketIO服務器在NodeJS環境下運行。 客戶端首先發出一個HTTP請求,然後socketIO發送一個靜態JS腳本給客戶端。 該腳本建立雙向通信。 但是,您可以將socketIO服務器與不同的socketIO客戶端實現一起使用。

是否有其他方法可以使用socket.io客戶端?

任何socketIO客戶端實現都可以完成這項工作,因爲他們連接到服務器。 但要小心異步通信方式,就像在Java或PHP中一樣。

是socket.io客戶端只是另一個用於websocket通信的JavaScript庫嗎?

是的,但socketIO的目標是可靠性和易用性,同時也盡最大努力:爲客戶選擇最佳的傳輸方式。

希望它有幫助!