2013-11-22 22 views
5

Utilizzando la scheda/archivio redisstore di socket.io (?), È possibile "vedere" tutti i client e "selezionare" anche un client che non è direttamente connesso al proprio server socket.io? Oppure è limitato alla funzionalità 'room' di socket.io?Socket.io redisstore

Per dare un esempio pratico, due utenti nella stessa chat room sono connessi a due nodi socket.io diversi, l'adattatore/archivio redisstore rende possibile bisbigliare da un utente all'altro senza enormi modifiche al codice se hai già un'implementazione di un singolo processo/server funzionante?

Il motivo che chiedo è che non sono ancora attualmente in fase di sviluppo del mio progetto di essere eccessivamente preoccupati con scalatura (né ho il tempo per tuffarsi i concetti alla base node.js scala che sembra molto diversa da quello a cui sono abituato (primo progetto node.js completo) ora, ma Non mi sento di costruire un'infrastruttura che risulta impossibile scalare.

+0

Se stai usando i cluster di nodi, probabilmente utilizzerai anche qualcosa come clusterhub e forse [socket.io clusterhub] (https://github.com/fent/socket.io-clusterhub) per condividere i dati attraverso i cluster, e quindi non è più un problema, ma per quanto ne so tu devi ancora usare le stanze per identificare gli utenti, ecc. – adeneo

risposta

1

Redis store (/lib/stores/redis.js) funziona solo con redis pub-sub per la propagazione dei messaggi tra i server. Quindi, se vuoi ottenere l'elenco degli utenti connessi, devi farlo da solo.

Ma se si vogliono passare messaggi tra due utenti - penso che non sarà un problema con la libreria standard.io + redis redis perché redis pub-sub è molto utile per passare messaggi tra server \ processi.