node.js - Laravel 5 - Homestead - Redis - NodeJs - Socket IO 运行不正常

标签 node.js redis socket.io laravel-5 homestead

我正在尝试将一些实时通知发送到我的 Laravel 5 应用程序中。使用 Homestead 在 vagrant box 上本地构建。

我无法确定以下设置的问题所在。

我的server.js如下...

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

server.listen(3000);

io.on('connection', function (socket) {

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

  redisClient.on("message", function(channel, message) {
    socket.emit(channel, message);
  });

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

});

那么我的客户端代码就是订阅:

<script src="https://cdn.socket.io/socket.io-1.3.4.js"></script>

<script>
var socket = io.connect('http://127.0.0.1:3000');
socket.on('message', function (data) {
   alert(data);
});
</script>

Firebug 不断返回:

GET http://127.0.0.1/socket.io/?EIO=3&transport=polling&t=1430825965165-1 Aborted

Chrome 工具向我显示以下内容:

http://127.0.0.1:3000/socket.io/?EIO=3&transport=polling&t=1430826106108-3 net::ERR_CONNECTION_REFUSED

NodeJs 的新手,非常困惑。现在花了整整 4 个小时来解决这个问题。

有什么建议吗?

非常感谢,院长。

最佳答案

首先确保你已经安装了 server.js 文件的所有依赖项,如果你正在使用 Homestead,请在你的项目根目录中执行以下命令:

npm install express redis socket.io --save

等待安装完成并启动服务器:

node server.js

关于node.js - Laravel 5 - Homestead - Redis - NodeJs - Socket IO 运行不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30052046/

相关文章:

c# - 适用于 .NET 的 Node.js

javascript - 没有获取socket.io客户端传递的值

node.js - socket.io 的含义是监听一个快速服务器?

node.js 表示 socket.io 端口 3000 正在使用中

javascript - JavaScript 中的变量名拼写检查

database - 通过命令行在redis中创建命名空间

javascript - 类型 'get' 上不存在属性 'Cache' 。 NestJs 项目

javascript - 在使用 socket.io 的 node.js 中,如何动态添加到套接字监听器?

javascript - 从javascript通过端口停止进程

nginx - lua 找不到模块套接字