2016-09-14 57 views
1

我是Node.js和socket.io的新手。socket.io中的socket變量是什麼

我去官方網站的socket.io,並嘗試教程。 http://socket.io/get-started/chat/

它在我的電腦上正常工作。但是我根本無法理解它的代碼的本質。

問題:什麼是下面的代碼中的「套接字變量」。它從哪裏來?

io.on('connection', function(socket){ 
    socket.on('chat message', function(msg){ 
    io.emit('chat message', msg); 
    }); 
}); 

也許「msg變量」是字符串類型變量。這是從客戶端,對嗎?

回答

1

socket變量基本上是客戶端的套接字。每次新客戶端連接並給定套接字時,將調用io.on('conection')

socket.on('chat message'將訂閱與該套接字實例關聯的客戶端發送的事件。

這裏是你的程序的不同部分解釋:

io.on('connection', function(socket){ // Waiting for new clients to connect, then return a socket instance 
// msg can be any javascript object like a string or array ect. 
    socket.on('chat message', function(msg){ // Subscribe on event 'chat message' will be called when client do io.emit 
    io.emit('chat message', msg); // Server send to clients 
    }); 
}); 
+0

謝謝你的建議,我明白,我們可以把不同的類型如String數組對象。 但我無法理解這句話。 「套接字變量基本上是一個套接字到客戶端」 什麼是套接字?它是像客戶端ID還是客戶端和服務器之間的連接?我谷歌它的單詞,但大多數網頁只是解釋有關WebSocket協議或套接字。 IO。 –

0

變量msg的類型不完全是String,而更像是在「聊天消息」事件中發出的任何內容。你不必只發射字符串,你也可以發射物體。在這個例子的背景下,是的。它來自客戶端。

可變套接字雖然,套接字是客戶端和服務器之間的連接。如果服務器收到來自該連接的'聊天消息'事件,或者'套接字',它會在它擁有的所有套接字上發出「聊天消息」事件。服務器發送給連接到它的所有套接字的「聊天消息」事件的內容與發送聊天消息的客戶端首先發送到服務器的「聊天消息」事件的內容相同。