Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak ponownie wykorzystać połączenie redis w socket.io?

W rzeczywistości tworzysz nowego klienta redis tylko dla każdego połączenia, jeśli tworzysz instancję klienta w zdarzeniu „połączenie”. To, co wolę robić podczas tworzenia systemu czatu, to utworzyć trzech klientów redis. Jeden do publikowania, subskrybowania i jeden do przechowywania wartości w redis.

na przykład:

var socketio = require("socket.io")
var redis = require("redis")

// redis clients
var store = redis.createClient()
var pub = redis.createClient()
var sub = redis.createClient()

// ... application paths go here

var socket = socketio.listen(app)

sub.subscribe("chat")

socket.on("connection", function(client){
  client.send("welcome!")

  client.on("message", function(text){
    store.incr("messageNextId", function(e, id){
      store.hmset("messages:" + id, { uid: client.sessionId, text: text }, function(e, r){
        pub.publish("chat", "messages:" + id)
      })
    })
  })

  client.on("disconnect", function(){
    client.broadcast(client.sessionId + " disconnected")
  })

  sub.on("message", function(pattern, key){
    store.hgetall(key, function(e, obj){
      client.send(obj.uid + ": " + obj.text)
    })
  })

})


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak utrzymać serwer redis działający?

  2. phpredis na Windows 7 64bit xampp

  3. Jak skonfigurować klienta Node Redis, aby natychmiast zgłaszał błędy, gdy połączenie nie powiodło się? [PRZECZYTAJ SZCZEGÓŁY]

  4. Najlepsza biblioteka Redis dla Javy

  5. Bezpieczne nadawanie wiadomości do wykorzystania przez określonego odbiorcę za pomocą redis i python