Laravel Echo Server:在生产中使用HTTPS(专用/在线通道subscription_error)“发送验证请求时出错”

时间:2019-07-23 16:04:16

标签: laravel socket.io real-time laravel-echo

我使用以下工具创建了实时聊天应用程序:Laravel 5.8,Laravel Echo,Redis,Socket.io和Vue.js。

它在我的本地计算机(本地主机)上正常工作。但是,当我尝试将应用程序移至生产服务器(具有https)时,它停止工作,并向我显示laravel-echo-server.log文件中的下一个错误:

laravel-echo-server.log error

我还更改了 laravel-echo-server.json (回声服务器配置文件),如下所示:

laravel-echo-server.json content

还可以看到 window.Echo配置的外观(在app.js中):

import Echo from 'laravel-echo'
window.io = require('socket.io-client');

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.location.hostname + ':6001'
});

在上面提到的配置中我可能有一些错误吗?

此外,我认为这对您有所帮助,请查看以下我在客户请求之一中注意到的屏幕截图:

client's request error

我试图找到有关该错误以及为什么会出现但没有结果的更多信息。确实我检查了laravel日志文件-它是空的,nginx error.log文件也为空,这是我看到错误的唯一地方是laravel-echo-server.log文件(我在上面推了其内容)

有关其他信息,您可以检查我的.env文件(我更改了.env时清除了缓存)中用于Redis服务器的设置:

...

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

...

此外,这就是我的config / database.php文件中的内容:

...

'redis' => [

    'client' => env('REDIS_CLIENT', 'predis'),

    'options' => [
        'cluster' => env('REDIS_CLUSTER', 'predis'),
    ],

    'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_DB', 0),
    ],

    'cache' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_CACHE_DB', 1),
    ],

],

...

非常感谢你们的帮助,最近几天我一直在为这个问题而苦苦挣扎,我无法解决,所以我将不胜感激!

2 个答案:

答案 0 :(得分:2)

在终端中运行此命令

sudo nano /etc/hosts

在“主机”条目中添加您的项目主机

127.0.0.1 https://naturalselection.ie

并保存文件

在终端中运行此命令后

laravel-echo-server start

并通过Laravel Echo享受您的实时通知

答案 1 :(得分:0)

我整理了出来。

要解决此类问题,您必须转到 / etc / hosts 并在其下粘贴以下文本: 127.0.0.1 your_domain_name.com

sudo nano /etc/hosts
127.0.0.1 your_domain_name.com

仅此而已,希望对您有帮助:)