来自Socket.IO website的这个例子令我感到困惑。 发送和获取数据(确认):
客户端:
<script>
socket.on('connect', function () {
socket.emit('ferret', 'tobi', function (data) {
console.log(data); // data will be 'woot'
});
});
</script>
服务器:
io.sockets.on('connection', function (socket) {
socket.on('ferret', function (name, fn) {
fn('woot');
});
});
我实际上正在复制这个例子。我无法理解的是:
fn
)自动时会将结果发送给客户端吗? Socket.IO是否将fn
绑定到emit
的客户端第三个参数?name
中的(未使用的)function (name, fn)
参数是什么?记录它显示它是undefined
,为什么?答案 0 :(得分:8)
我自己发现,如果我错了,请纠正我:
name
(官方文档中有什么不好的名字!!!)实际上是客户发送的数据。fn
对应于客户端代码的第3个参数,当执行时(从服务器)自动(?)将数据发送回客户端。太神奇了!答案 1 :(得分:1)
实际上;如果你重命名&#34; fn&#34;它会更加清晰。回到&#34;回调&#34;,如下所示:Acknowledgment for socket.io custom event。该回调永远不会在服务器端执行;服务器只是将传递给回调的数据(在这种情况下,字符串&#34; woot&#34;)作为确认发送回客户端。然后使用服务器发送的数据在客户端上执行回调。
答案 2 :(得分:-1)
从客户端向服务器发送数据
socket.emit("Idofhtmltag",value);
要从服务器接收数据,请在客户端html上添加此
socket.io("Idofhtmltag",function(msg){ }) ;