node.js - 未从 Laravel 中的 Redis 发布功能获取消息
问题描述
我从 Laravel 发布消息,但没有进入节点 js 端。我正在使用 Laravel 5.8。
Laravel 代码:
namespace App\Http\Controllers;
use Redis;
class HomeController extends Controller {
public function test(){
$redis = Redis::connection();
$test = $redis->publish('message', json_encode(['foo' => 'bar']));
echo $test; // returned 0
exit;
}
}
Node.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){
console.log('Starting...');
var redisClient = redis.createClient();
redisClient.subscribe('message');
redisClient.on('message', function(channel, data){
data = JSON.parse(data);
console.log(data);
io.emit('message', data);
});
socket.on('disconnect',function(){
redisClient.quit();
});
});
请帮我。提前致谢。
解决方案
谢谢!因为我使用redis.options.prefix。函数 subscribe() 回调 $channel 将替换前缀为 ''。
推荐阅读
- reactjs - 为什么 React-Table 列数组对象既有 camelCasing 又有 PascalCasing
- android - 如何为流星科尔多瓦应用程序建立深层链接?
- kdb - 有没有办法将stdout作为q中的字符串重定向到变量,或者以其他方式对变量进行字符串化?
- vba - DoCmd.OpenForm 编译错误,“预期:=”
- mongodb - Spring mongo agregation 返回空列表
- javascript - 当用户将输入发送到表单时显示文本
- html - 绝对定位的行比容器宽
- javascript - 禁用时如何设置我的反应选择(在 CSS 中)?
- php - 在 PHP 中根据名字和姓氏创建邮件地址
- ios - 关于单元格高度更新问题的静态 UITableViewCell 动画中的 UIPickerView