Jump to content

Socket.io + NodeJS + Redis + Laravel


LSDx
 Share

Recommended Posts

Sveiki. Tātad pirmo reizi saskāros ar websoketiem.. Bet nu protams radās problēma. Izguglēju cik vien var, bet neko neatradu.

Tātad kodā viss komentāros ir rakstīts. Ceru savu domu izklāstīju saprotami.

const io          = require('socket.io').listen(8080);
const redis       = require('redis');
const redisClient = redis.createClient();


redisClient.subscribe('user.action');

/**

    Kā strādā:
    
    1. Tātad tiek padots Event::fire(GlobalEventHandler::EVENT, $dataToParse)
    2. GlobalEventHandleris savienojas ar Redis'u un padod tam datus pa noteiktu kanālu
    3. Redis savukārt šos datus padod server.js failam (šim failam)
    4. Funkcija, kas atbild par šo datu apstrādi : redisClient.on('message', function(channel, data) {});

    Ko man vajag:

    Lai tie dati tiku padoti pārjiem lietotājiem, izņemot mani (sūtītāju)

    Apmēram šādi:

        redisClient.on('message', function(channel, data) 
        {

            socket.broadcast.emit(channel, data); - bet kur lai to socketu dabon?!

        });

    Bija doma darīt šādi, bet nestrādā šitā:

        redisClient.on('message', function(channel, data) 
        {

            io.sockets.on('message', function (socket) 
            {

                socket.broadcast.emit(channel, message);

            });

        });

*/



redisClient.on('message', function(channel, data) 
{

    io.sockets.emit(channel, 'Redis ziņu saņēma un nostrādāja onMessage f-ija');
    socket.broadcast.emit(channel, data);

});




Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...