解决在Laradock上搭建Laravel-Echo-Server时出现的“NOAUTH身份验证需要”的问题

由于长时间的调查仍然没有找到答案,我只能将注意力转移到其他事件的应对措施上,并做一些备忘录。

大致描述

使用Laradock

$ docker-compose up -d redis laravel-echo-server

当为双向通信准备容器时,奇怪的是,只有laravel-echo-server在几秒钟后就会崩溃。

看到日志

[ioredis] Unhandled error event: ReplyError: NOAUTH Authentication required.

中略

[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "Redis could not subscribe.".] {
  code: 'ERR_UNHANDLED_REJECTION'
}

这个错误。

虽然我理解了写的内容,但是用了好几个小时才找到解决办法。

解决方案

在初始状态下,laradock的.env文件中已经设置了secret_redis作为redis的密码。如果不做任何更改,启动redis容器时将使用此密码,并且在通信时也会需要使用它。

### REDIS #################################################

REDIS_PORT=6379
REDIS_PASSWORD=secret_redis ←これ

因此,在laradock/laravel-echo-server/laravel-echo-server.json文件的databaseConfig部分中。

			"password":"secret_redis"

在添加完“ を”后,重新构建laravel-echo-server的容器。

$ docker-compose up -d --build laravel-echo-server
✔  Running at localhost on port 6001
✔  Channels are ready.
✔  Listening for http events...
✔  Listening for redis events...

Server ready!

好的。

广告
将在 10 秒后关闭
bannerAds