我知道,也看过这个问题
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协议?
2条答案
按热度按时间tcomlyy61#
这可能是因为您有错误的访问令牌(动态添加)。为什么不先尝试为用户使用静态访问令牌(复制访问令牌并粘贴它而不是localStorage.getItem('token')),看看它是否有效。
也可以尝试将以下内容放入laravel-echo-server.json文件中
“allowOrigin”:“http://mysite.it:80“
然后,查看.env文件中的APP_URL是否不同
h79rfbju2#
在
laravel-echo-server.json
中,你有一个名为socketio
的部分,你可以把你的socketio设置放在这里。根据socketio文档(握手和pingTimeout),有一个名为
pingTimeout
的选项,默认超时设置为20000 ms。您可以根据项目的需要增加超时时间。