【问题标题】:What is socket variable in socket.iosocket.io 中的套接字变量是什么
【发布时间】:2016-09-14 09:49:02
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js websocket socket.io


    【解决方案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
      });
    });
    

    【讨论】:

    • 感谢您的建议,我知道我们可以发送各种类型的对象,如字符串、数组。但是我看不懂这句话。 “socket变量基本上是一个客户端的socket”什么是socket?它像一个客户端ID吗?还是客户端和服务器之间的连接?我google它的词,但大多数网页只是解释Websocket协议或socket.io .
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-10-05
      • 1970-01-01
      • 2013-01-24
      • 2015-07-18
      • 2010-12-16
      • 2014-04-26
      • 1970-01-01
      • 2014-03-27
      • 2012-05-04
      相关资源
      最近更新 更多