2017-08-09 110 views
-3

爲什麼他們一起使用?什麼是socket.io和Redis?

我是Node.js及其NPM軟件包的新手,我嘗試瞭解他們的用途以及他們爲什麼一起使用。我試着閱讀他們的文檔,但我仍然不明白。

回答

3

socket.io是一個通信包,允許客戶端和服務器有一個長時間運行的連接,可以隨時發送其他消息。有多種原因可以使用socket.io連接來代替http請求,但主要的原因是當客戶端和服務器之間有連續的連接時,服務器可以隨時「推送」數據給客戶端而無需等待客戶請求。這對獲取服務器上發生的事情的即時通知非常有用。

Redis是一個快速的數據庫,通常將數據保存在內存中,而不是磁盤上,所以它通常用於臨時數據,而不必永久存儲。

有一個適用於socket.io的適配器,它使用redis,當您想在集羣或多服務器環境中使用socket.io時使用該適配器。然後,當你想通過他的socket.io連接發送數據到「Bob」時,它是使用redis數據庫的socket.io適配器,它跟蹤哪個服務器「Bob」連接到哪個服務器,以及如何發送數據給他。

除了與socket.io一起使用以外,Redis還有許多其他用途。從我所看到的情況來看,redis的一個主要用途是當你有多個服務器進程(在同一主機或不同主機上),都希望快速訪問某種「狀態」信息。在上述的socket.io中,狀態是「Bob當前連接到的服務器」。在其他情況下,它可能是客戶端會話對象或類似於其他任何狀態的信息,或者是所有服務器都想要訪問的其他狀態信息。

+0

清除了一些東西。 謝謝!我會接受yoru的回答。 –

0

Socket.IO支持實時雙向事件通信。 它適用於每個平臺,瀏覽器或設備,同時關注可靠性和速度。

檢查網站https://socket.io

的Redis是一個內存中的數據結構存儲,用作數據庫,緩存和消息代理https://redis.io

爲什麼它們一起使用可能是創建某種實時的應用程序

NPM基本上是Node的包管理器,它使您能夠通過添加預開發的模塊來開發應用程序來快速輕鬆地擴展節點。

我希望這有助於

0

Socket.IO是一個JavaScript庫的實時Web應用程序。它支持Web客戶端和服務器之間的實時雙向通信。它有兩部分:在瀏覽器中運行的客戶端庫和用於node.js的服務器端庫。這兩個組件都有幾乎相同的API。

Redis是一個開源(BSD許可),內存數據結構存儲,用作數據庫,緩存和消息代理。它支持數據結構,如字符串,散列,列表,集合,具有範圍查詢的排序集,位圖,超級日誌和具有半徑查詢的地理空間索引。

希望這有助於,這裏是我獲得信息https://scalegrid.io/blog/using-redis-with-node-js-and-socket-io/的鏈接。如果你想獲得一些這些技術的實際經驗,它還有一個簡單的聊天程序供你創建。

+0

謝謝,我會與他們創建一個聊天應用程序,以獲得一些實際的經驗。 –

+0

享受它是學習的最佳途徑之一! – Chase

相關問題