Laravel 5 – Homestead – Redis – NodeJs – Socket IO不能很好地播放

我正在尝试将一些实时通知导入到我的Laravel 5应用程序中。 在宅基地的stream浪箱子上build造。

我无法弄清楚下面的问题是怎么回事。

我的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中止

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

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

相当新的NodeJs和非常困惑。 花了4个小时,现在试图解决。

任何指针?

非常感谢,Dean。

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

npm install express redis socket.io –save

等到安装完成并使用以下命令启动服务器:

节点server.js

使用您的项目的虚拟主机名与套接字连接。 这个对我有用。 在你的客户代码中编辑这个。 var socket = io.connect('http://' + location.host + ':3000');

    Interesting Posts