i am using node js, socket.io and redis for publish some message in html view. but it's not working. when i use simple localhost installed laravel , it's working fine, i did not understand why it's happening with vagrant installed laravel. i share my code, please help.
server side server.js file
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
var redis = require('redis');
server.listen(3000);
console.log('server listening 3000');
io.sockets.on('connection', function (socket) {
console.log("new client connected");
var redisClient = redis.createClient();
redisClient.subscribe('message');
console.log("redis start");
redisClient.on("message", function(channel, message) {
console.log("mew message in queue "+ message + "channel");
socket.emit(channel, message);
});
socket.on('disconnect', function() {
redisClient.quit();
console.log('redis disconnected!');
});
});
Client Side
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="https://cdn.socket.io/socket.io-1.3.4.js"></script>
<script>
var socket = io.connect('http://localhost:3000');
alert('connection');
socket.on('message', function (data) {
$(".progress-bar").css('width',+data+'%');
alert('connection established');
$("#messages").append( "<p>"+data+"</p>" );
});
</script>
Controller
class SocketController extends ApiController
{
public function testview(){
return view('courier.socket');
}
public function send_message(){
$count = 90 ;
for ($i = 0; $i < $count; $i++) {
Redis::connection();
Redis::publish('message',$i);
}
return 'done';
}
}
all above code working fine with simple localhost installed laravel 5.2, but it's not working with homestead vagrant box laravel.