连接超时Laravel-echo-server

k2fxgqgv  于 2023-05-19  发布在  其他
关注(0)|答案(2)|浏览(136)

我知道,也看过这个问题
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, Content-Type, X-A uth-Token, X-Requested-With, Accept, Authorization, X-CSRF-TOKEN, X-Socket-IdOri gin, Content-Type, X-Auth-Token, X-Requested-With, Accept, Authorization, 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 -我可以看到:
tcp 6 0 0:::6001:::* 听
但是当我尝试启动我的应用程序时,我收到:
app.js:569 GET https://mysite.it:6001/socket.io/?EIO=3&transport=polling&t=NKoWZoK net::ERR_CONNECTION_TIMED_OUT
如何使用laravel echo与https协议?

tcomlyy6

tcomlyy61#

这可能是因为您有错误的访问令牌(动态添加)。为什么不先尝试为用户使用静态访问令牌(复制访问令牌并粘贴它而不是localStorage.getItem('token')),看看它是否有效。
也可以尝试将以下内容放入laravel-echo-server.json文件中
“allowOrigin”:“http://mysite.it:80“
然后,查看.env文件中的APP_URL是否不同

h79rfbju

h79rfbju2#

laravel-echo-server.json中,你有一个名为socketio的部分,你可以把你的socketio设置放在这里。

{
  "sid": "FSDjX-WRwSA4zTZMALqx",
  "upgrades": ["websocket"],
  "pingInterval": 25000,
  "pingTimeout": 20000
}

根据socketio文档(握手和pingTimeout),有一个名为pingTimeout的选项,默认超时设置为20000 ms。您可以根据项目的需要增加超时时间。

相关问题