连接超时Laravel-echo-server

问题描述

我知道而且我已经看到了这个问题

Getting ERR_CONNECTION_TIMED_OUT Laravel echo server

但是我在评论中尝试了该解决方案,但是它不起作用。

我有我的Laravel-echo-server.json

{
   "authHost": "https://mysite.it","authEndpoint": "/broadcasting/auth","clients": [],"database": "redis","databaseConfig": {
   "redis": {
      "host":"0.0.0.0","port":"6379","password": "mypwd"
   },"sqlite": {
      "databasePath": "/database/laravel-echo-server.sqlite"
    }
  },"devMode": true,"host": null,"port": "6001","protocol": "https","socketio": {},"secureOptions": 67108864,"sslCertPath": "path_cert","sslKeyPath": "path_key","sslCertChainPath": "","sslPassphrase": "","subscribers": {
      "http": true,"redis": true
   },"apiOriginAllow": {
   "allowCors": true,"allowOrigin": "*","allowMethods": "GET,PoST","allowHeaders": "Origin,Content-Type,X-Auth-Token,X-Requested -With,Accept,Authorization,X-CSRF-TOKEN,X-Socket-IdOrigin,X-A uth-Token,X-Requested-With,X-Socket-IdOri gin,X-CSRF -TOKEN,X-Socket-Id"
   }
}

我的bootstrapjs中有与Frontend的连接:

import Vue from 'vue'
import Echo from 'laravel-echo'
window.io = require('socket.io-client')
export var echo_instance = new Echo({
   broadcaster: 'socket.io',host: window.location.hostname + ':6001',auth: {
      headers: {
        'Authorization': "Bearer " + localStorage.getItem('token')
      }
   }
})
Vue.prototype.$echo = echo_instance
export default Vue

我已经检查端口是否关闭,但是使用netstat -an可以看到:

tcp6 0 0 ::: 6001 ::: *监听

但是当我尝试启动我的应用程序时,我收到:

app.js:569 GET https://mysite.it:6001/socket.io/?EIO=3&transport=polling&t=NKoWZoK 净:: ERR_CONNECTION_TIMED_OUT

如何将laravel echo与https协议一起使用?

解决方法

这可能是因为您使用了错误的访问令牌(动态添加)。为什么不先尝试为用户使用静态访问令牌(复制访问令牌并粘贴它而不是localStorage.getItem('token')),看看它是否有效。

还要尝试将以下内容放入laravel-echo-server.json文件

“ allowOrigin”:“ http://mysite.it:80”

然后,查看.env文件中的APP_URL是否不同