我正在學習節點和套接字 io。我一直在看教程,一開始還不錯,但是后來,他們開始混淆使用socket.on(), socket.emit()and io.on(), io.emit()。這似乎很混亂。任何人都可以清除我的概念,即在 nodejs 中在哪里使用io和在哪里使用?socket
uj5u.com熱心網友回復:
邏輯上認為是io頂級 socket.io 引擎管理器。如果你想在頂層做一些事情,或者創建某種資源,比如一個socket或一個新的命名空間物件,或者向命名空間中的所有現有連接發送訊息,那么你可以使用io.
一旦創建了像套接字這樣的資源,您就可以使用該物件本身對其進行操作。
在服務器上,io當您想要偵聽新連接或想要向所有連接廣播時使用。您還可以使用它執行其他一些操作。
在客戶端中,io當您要連接到服務器時使用。
當您想與一個特定連接進行通信時使用socket該連接,因為該連接由socket物件表示。因此,每個客戶端連接都有一個socket物件,您可以使用物件上的方法向/從該客戶端發送或接收資訊socket。
因此,const socket = io.connect(url)或者作為快捷方式const socket = io(url)將客戶端連接到服務器并為您提供客戶端socket物件。
io.on('connection, socket => { ... })將偵聽服務器上的傳入客戶端連接,并為您socket提供該新連接。
socket.emit()將訊息發送到該特定套接字的另一端(無論是在客戶端還是服務器上)。
io.emit()在服務器上向所有當前連接的客戶端發送訊息(從技術上講,所有客戶端都連接到頂級io命名空間 - 可以有其他命名空間)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491269.html
