我正在尝试订阅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_'),
],