什么是Socket.IO发送和获取数据(确认)?

gre*_*emo 5 sockets websocket socket.io

来自Socket.IO网站的这个例子让我很困惑.发送和获取数据(确认):

客户:

<script>
    socket.on('connect', function () {
        socket.emit('ferret', 'tobi', function (data) {
             console.log(data); // data will be 'woot'
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

服务器:

io.sockets.on('connection', function (socket) {
    socket.on('ferret', function (name, fn) {
        fn('woot');
    });
});
Run Code Online (Sandbox Code Playgroud)

我实际上正在复制这个例子.我无法理解的是:

  • Q1:这首先是如何运作的.服务器(执行时fn)是否自动将结果发送给客户端?Socket.IO是否绑定fn到客户端的第三个参数emit
  • Q2:匿名服务器中的(未使用)name参数是什么?记录它表明它是,为什么?function (name, fn)undefined

gre*_*emo 8

如果我错了,请自己找到,纠正我:

  • name(官方文档中有什么不吉利的名字!!!)实际上是客户发送数据.
  • fn对应于客户端代码的第3个参数,并且当从服务器执行时(自动)(?)将数据发送回客户端.惊人!