18

我只想将一些变量附加到我的套接字,但我不了解 .get 和 .set 方法。他们都有回调的第三个参数。这个可以省略吗?这是为了什么?!回调本身是否包含参数?

我最好的猜测是,当 socket.io 不使用内存存储但将这些东西保存在其他地方并且需要错误检查回调时,它就在那里。

socket.on('set nickname', function (name) {
    socket.set('nickname', name, function (arguments) {
      doSomethingMysterious();
    });

我正在使用 socket.io 0.9.x

该函数在 socket.js 中定义

/**
 * Stores data for the client.
 *
 * @api public
 */

Socket.prototype.set = function (key, value, fn) {
  this.store.set(key, value, fn);
  return this;
};
4

2 回答 2

35

套接字对象上的getand函数在1.x 版本中被删除。现在存储和检索值的正确方法是通过套接字对象上的属性,如下所示:set

socket.on('set nickname', function (name) {
  socket.nickname = name;
});

官方 repo 中的示例代码所示。

于 2014-06-24T18:35:56.577 回答
12

set并且get是异步的。完成这些操作后将调用回调。你可以省略它,或者你可以将它用于任何你喜欢的目的,而不仅仅是错误处理。

于 2012-04-28T12:16:57.190 回答