dtypj3308 2016-07-11 07:28
浏览 36

socket.io和redis,节点js不能在宅基流浪盒上的laravel中工作

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.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 对于相关问题的求解与代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作