【发布时间】:2016-10-03 08:29:39
【问题描述】:
我正在使用 BROADCAST_DRIVER=redis 来触发 laravel 5.2 事件。 一旦我在命令提示符下运行以下服务:
-
在第一个选项卡中,运行 node socket.js
您应该会看到“正在侦听端口 3000”
在第二个选项卡中运行 redis-server --port 3001
之后并排打开两个浏览器窗口,在第一个窗口中点击 URL:“http://your-project-name.app/fire”
第二个:“http://your-project-name.app/test”
继续刷新第一个窗口,您应该会看到第二页的内容已更新。
但我不想刷新页面,我只想在后台触发广播事件,也不想运行服务“node socket.js and redis-server --port 3004”。
我已经安装了 node、redis、express ioredis socket.io 并创建了事件。
我的套接字代码:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var Redis = require('ioredis');
var redis = new Redis();
redis.subscribe('test-channel', function(err, count) { });
redis.on('message', function(channel, message) {
console.log('Message Recieved: ' + message);
message = JSON.parse(message);
io.emit(channel + ':' + message.event, message.data);
});
http.listen(3004, function(){
console.log('Listening on Port 3004');
});
【问题讨论】:
-
我的 socket.js 代码是 var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); var Redis = require('ioredis'); var redis = new Redis(); redis.subscribe('test-channel', function(err, count) { }); redis.on('message', function(channel, message) { console.log('Message Recieved: ' + message); message = JSON.parse(message); io.emit(channel + ':' + message.event , 消息. 数据); }); http.listen(3004, function(){ console.log('Listening on Port 3004'); });
标签: node.js laravel redis socket.io