node中如何使用Socket.IO模組?以下這篇文章就來跟大家介紹一下在node.js中優雅使用Socket.IO模組的方法,希望對大家有幫助!
Socket.IO是一個WebSocket函式庫
,包括了客戶端的js
和伺服器端的node.js
,它的目標是建立可以在不同瀏覽器和行動裝置上使用的即時應用。 【相關教學推薦:nodejs視訊教學】
Socket.IO將WebSocket、AJAX及其它的通訊方式
全部封裝了統一的通訊接口
,也就是說,我們在使用SocketIO時,不用擔心相容問題,底層會自動選用最佳的通訊方式
。
socket.io封裝了服務端和客戶端,使用起來非常簡單方便。
socket.io支援跨平台,這意味著你有了更多的選擇,可以在自己喜歡的平台下開發即時應用。
socket.io可以自訂事件傳送到對端,對端可以是伺服器,可以是客戶端;使用emit傳送,接收還是on
。
它會自動根據瀏覽器從WebSocket、AJAX長輪詢、Iframe串流等等各種方式中選擇最佳的方式來實現網路即時應用,非常方便且人性化,而且支援的瀏覽器最低達IE5.5。如果不支援websocket,可以自動降級為輪詢
#開啟終端,在終端機中輸入以下程式碼即可安裝Socket.IO模組:
npm i socket.io
#node中使用Socket.IO
和on 是最重要的兩個api,分別對應發送 和監聽 事件.
我們可以非常自由的在服務端
定義並發送一個事件emit
,然後在
監聽on
emit,反過來也一樣。
發送的
內容格式也非常自由,
既可以是基本資料型別Number,String,Boolean 等,也可以是Object,Array 類型,甚至還可以是函數。而用回呼函數的方式則可以進行更便攜的互動。
為範例:在服務端中透過#socket.emit(eventName[, ...args])
:
發射(觸發)一個事件socket.emit('aaa','你好,前台')在這裡以服務端
socket.emit() 方法創立一個事件(第一個參數:自訂事件)aaa,發送的訊息(第二個參數
)你好,前台.
注意:第二個參數可以傳
物件
,因為在emit方法內部
帶有JSON.stringfy()
方法,自動將物件轉換為字串。
socket.on('aaa',(msg)=>{ console.log(msg) })
在這裡以客戶端
為例,客戶端監聽服務端的事件
aaa,隨後透過回呼函數的方式印出
aaa傳過來的訊息。
io###掛載的服務依舊是基於###http ###的。 ### 這裡的程式碼表示,只要連接成功,就會列印連接成功的訊息! #####################客戶端######<script src="/socket.io/socket.io.js"></script> <script> const socket = io(); //默认连接服务端启动的本地端口地址 socket.emit("message","你好 后台") // 监听服务端的广播事件,接收广播的消息 socket.on("allMsg",(msg)=>{ console.log(msg) //广播 : 欢迎来到聊天室 }) </script>######在客戶端需要單獨引用###socket.io.js ###文件,因為socket.io不是瀏覽器內建模組,需要單獨引用,js檔案內部程式碼==> ###socket.io.js內部程式碼###,將這裡的程式碼複製到自己建立的js檔案中,然後在客戶端中引用。 ### 只要在客戶端中出現###const socket = io()###,瀏覽器將會直接預設連線到客戶端啟動的本機服務位址。 ###
Relatively speaking, the third-party module socket.io is more convenient and efficient when writing code. The ws
module uses the switch
branch to present different chat types
in different ways, and in the socket.io
module This problem can be solved just by custom events
, and socket.io can automatically connect after the server is disconnected when you enter the client again, and the overall performance is better than ws
module.
For more node-related knowledge, please visit: nodejs tutorial!
以上是淺析node中如何優雅使用Socket.IO模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!