2016-09-14 40 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,而更像是在“聊天消息”事件中发出的任何内容。你不必只发射字符串,你也可以发射物体。在这个例子的背景下,是的。它来自客户端。

可变套接字虽然,套接字是客户端和服务器之间的连接。如果服务器收到来自该连接的'聊天消息'事件,或者'套接字',它会在它拥有的所有套接字上发出“聊天消息”事件。服务器发送给连接到它的所有套接字的“聊天消息”事件的内容与发送聊天消息的客户端首先发送到服务器的“聊天消息”事件的内容相同。