Voglio solo collegare alcune variabili ai miei socket, ma non capisco i metodi .get e .set. Entrambi hanno un terzo argomento per una richiamata. Questo può essere omesso? Cosa serve?! La callback stessa è argomento di argomento?socket.io socket.set e socket.get: a cosa serve l'argomento del callback?
La mia ipotesi migliore è che sia lì per quando socket.io non sta usando l'archivio di memoria ma sta salvando questa roba da qualche altra parte e ha bisogno di un errore durante la verifica della richiamata.
socket.on('set nickname', function (name) {
socket.set('nickname', name, function (arguments) {
doSomethingMysterious();
});
sto usando socket.io 0.9.x
La funzione è definita in socket.js
/**
* Stores data for the client.
*
* @api public
*/
Socket.prototype.set = function (key, value, fn) {
this.store.set(key, value, fn);
return this;
};
Grazie, il fatto che sono asincrono rende più facile da avvolgere la mia gira intorno al tutto. In casi comuni questo dovrebbe essere usato per salvare valori in un db da qualche parte e quindi usare un altro emit di nuovo al client per fargli sapere che è stato salvato? Suppongo che non sia ancora chiaro per me, oltre alla collisione nello spazio dei nomi, perché non potremmo usare solo qualcosa come "socket.property = value;" Appena iniziato con node.js 2 giorni fa, ti prego perdona la mia ignoranza! –
Sì, una buona ragione per cui dovresti usare 'set',' get' (come opzionato per il solo salvataggio di un valore in un oggetto), è quello di salvarlo nel db. Infatti 'socket.io' sembra avere già una build in' redis store', ma non sono un utente di socket.io quindi non posso davvero dire come possa essere usato. Se si guarda il codice sorgente, quando si chiama 'set' questo inserisce il valore in' store': https://github.com/LearnBoost/socket.io/blob/master/lib/socket.js#L246 – mihai
e quello .store di default è redis? O è come se fosse sul posto giusto per poter creare il tuo negozio? – Funkodebat