socket.io中的socket变量是什么

时间:2016-09-14 09:49:02

标签: javascript node.js websocket socket.io

我是Node.js和socket.io的新手。

我去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变量”是String类型变量。它来自客户端,对吧?

2 个答案:

答案 0 :(得分: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
  });
});

答案 1 :(得分:0)

变量msg的类型不完全是字符串,但更像是“聊天消息”事件中发出的内容。您不必仅发出字符串,也可以发出对象。在示例的上下文中,是的。它来自客户端。

变量套接字,socket是客户端和服务器之间的连接。如果服务器从该连接收到“聊天消息”事件,或者更确切地说是“套接字”,它会在其拥有的所有套接字上发出“聊天消息”事件。服务器发送到连接到它的所有套接字的“聊天消息”事件的内容与发送聊天消息的客户端首先发送到服务器的“聊天消息”事件的内容相同。