我是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类型变量。它来自客户端,对吧?
答案 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是客户端和服务器之间的连接。如果服务器从该连接收到“聊天消息”事件,或者更确切地说是“套接字”,它会在其拥有的所有套接字上发出“聊天消息”事件。服务器发送到连接到它的所有套接字的“聊天消息”事件的内容与发送聊天消息的客户端首先发送到服务器的“聊天消息”事件的内容相同。