我正在尝试将一些实时通知发送到我的 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/