web-dev-qa-db-ja.com

socket.iosocket.setおよびsocket.get-コールバック引数は何ですか?

いくつかの変数をソケットにアタッチしたいのですが、.getメソッドと.setメソッドがわかりません。どちらにも、コールバックの3番目の引数があります。これは省略できますか?それはなんのためですか?!コールバック自体は引数に影響しますか?

私の推測では、socket.ioがメモリストアを使用していないが、このようなものを別の場所に保存していて、エラーチェックのコールバックが必要な場合に使用します。

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

私はsocket.io0.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;
};
18
Karl Keefer

setgetは非同期です。これらの操作が完了すると、コールバックが呼び出されます。省略したり、エラー処理だけでなく、好きな目的に使用することもできます。

12
mihai

ソケットオブジェクト getおよびset関数は、バージョン1.x で削除されました。値を格納および取得する適切な方法は、次のように、ソケットオブジェクトのプロパティを使用することです。

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

公式リポジトリの サンプルコードに見られるように。

35
caike