Find us on facebook

Feb 3, 2018

Node Redis Socket.io PHP Simple example to publish a message

pusher.php

<?php

//Load the Predis autoloader
require("Predis/autoload.php");

//Register all classes
Predis\Autoloader::register();

//Create a redis client to publish event
$redis = new Predis\Client(array(
    "scheme" => "tcp",
    "host" => "127.0.0.1",
    "port" => 6379
));

//Publish the event
$redis->publish("mychannel", "Woooow there !!!");
?>

pusher.js

var app = require('express')();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var redis = require('redis');

server.listen(8080);
io.on("connection", function (socket) {
    console.log("new client connected");

    var redisClient = redis.createClient();
    redisClient.subscribe('mychannel');

    redisClient.on("message", function(channel, message) {
      console.log("mew message in queue channel");
      socket.emit("schannel", message);
    });

    socket.on('disconnect', function() {
      redisClient.quit();
    });
  
});


receiver.html

<!doctype html>
<html>
<head>
    <title>Test</title>
</head>
<body>
 <div class="container">
        <div class="row">
            <div class="col-lg-8 col-lg-offset-2" >
              <div id="messages" >ss</div>
            </div>
        </div>
    </div>
  
    <script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
    <script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
    <script src="http://localhost:8080/socket.io/socket.io.js"></script>
    <script>
            var socket = io.connect('http://localhost:8080');
            socket.on("schannel", function(message) {
                $( "#messages" ).append( "<p>"+message+"</p>" );
                console.log("tweet from", message);
                console.log("contents:", message);
            });
    </script>

</body>
</html>

That's all. You are done....

You can monitor redis messages using following command
redis-cli monitor





No comments:

Post a Comment