无法在 Redis 客户端订阅频道中接收消息;从 laravel 服务器发送的消息
not able to receive messaged in redis client subscribed to channel ; messages sent from laravel server
我正在尝试订阅 Redis 频道 'JoinCall' 并在控制台中记录消息。
正在从 Laravel 服务器发布消息
我的节点 js 服务器代码:
const app = require("express")();
const server = require("http").createServer(app);
const io = require("socket.io")(server, {
cors: {
origin: '*',
}
});
io.on("connection", () => {
console.log("Connected!");
});
var redis = require('redis');
var url = "redis://@localhost:6379";
//var redis = require('redis-url').connect();
var client = redis.createClient(url);
//var client = redis.createClient();
client.on("error", function(error) {
console.error(error);
});
client.on('message', function(channel, msg) {
console.log("Message received: "+msg);
io.sockets.emit(msg);
});
client.subscribe('JoinCall');
console.log('starting server on 8001...');
server.listen(8001);
我的 Laravel 发布消息的代码:
Redis::publish('JoinCall', "testing123");
\Log::Debug("message published on JoinCall ");
我的 Laravel redis 设置:
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
问题出在我的 laravel redis 设置中
在config/database.php中,有一个前缀应用于频道名称;我不得不评论它
'redis' => [
'client' => env('REDIS_CLIENT', 'predis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
//'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
],
我正在尝试订阅 Redis 频道 'JoinCall' 并在控制台中记录消息。
正在从 Laravel 服务器发布消息
我的节点 js 服务器代码:
const app = require("express")();
const server = require("http").createServer(app);
const io = require("socket.io")(server, {
cors: {
origin: '*',
}
});
io.on("connection", () => {
console.log("Connected!");
});
var redis = require('redis');
var url = "redis://@localhost:6379";
//var redis = require('redis-url').connect();
var client = redis.createClient(url);
//var client = redis.createClient();
client.on("error", function(error) {
console.error(error);
});
client.on('message', function(channel, msg) {
console.log("Message received: "+msg);
io.sockets.emit(msg);
});
client.subscribe('JoinCall');
console.log('starting server on 8001...');
server.listen(8001);
我的 Laravel 发布消息的代码:
Redis::publish('JoinCall', "testing123");
\Log::Debug("message published on JoinCall ");
我的 Laravel redis 设置:
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
问题出在我的 laravel redis 设置中
在config/database.php中,有一个前缀应用于频道名称;我不得不评论它
'redis' => [
'client' => env('REDIS_CLIENT', 'predis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
//'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
],