Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel echo未在生产中加入存在频道_Php_Laravel_Vue.js_Pusher_Laravel Echo - Fatal编程技术网

Php Laravel echo未在生产中加入存在频道

Php Laravel echo未在生产中加入存在频道,php,laravel,vue.js,pusher,laravel-echo,Php,Laravel,Vue.js,Pusher,Laravel Echo,我使用laravel echo处理pusher js事件。在dev中本地运行它可以很好地工作,但只要我在服务器上实时运行它并在prod中运行它,它就不会加入状态通道,而是仍然连接到pusher Pusher调试控制台,如果我在本地打开站点: 如果我在prod/live中打开站点,则Pusher调试consle: bootstrap.js: 从“laravel Echo”导入Echo; window.Pusher=require('Pusher-js'); window.Echo=新的Ech

我使用laravel echo处理pusher js事件。在dev中本地运行它可以很好地工作,但只要我在服务器上实时运行它并在prod中运行它,它就不会加入状态通道,而是仍然连接到pusher

Pusher调试控制台,如果我在本地打开站点:

如果我在prod/live中打开站点,则Pusher调试consle:

bootstrap.js:


从“laravel Echo”导入Echo;
window.Pusher=require('Pusher-js');
window.Echo=新的Echo({
广播员:“推手”,
键:process.env.MIX\u PUSHER\u APP\u键,
集群:process.env.MIX\u PUSHER\u APP\u集群,
启用的传输:[“ws”,“wss”]
});
我的组件中的相关部分:

计算:{
频道(){
返回窗口.Echo.join(“作业”);
},
连接(){
返回窗口.Echo.connector.pusher.connection;
}
},
创建(){
让app=这个;
应用程序频道
.subscribed(用户=>{
//做事
})
.加入(用户=>{
//做事
})
.离开(用户=>{
//做事
})
.听一听(“工作支持”,e=>{
app.refreshData();
})
.on(“刷新客户端”,e=>{
app.refreshClient();
});
app.bindPusherStateChangeEvents();
window.setInterval(函数(){
app.refreshClient();
}, 600000);
},
在销毁之前(){
window.Echo.leave(“工作”);
},
routes/channels.php:

Broadcast::频道('jobs',函数($user){
返回$user;
});
config/broadcasting.php

'pusher'=>[
“司机”=>“推手”,
'key'=>env('PUSHER\u APP\u key'),
'secret'=>env('PUSHER\u APP\u secret'),
'app_id'=>env('PUSHER_app_id'),
“选项”=>[
'cluster'=>env('PUSHER\u APP\u cluster'),
“加密”=>false,
]

我已经尝试了stackoverflow和Laracast的两种解决方案,例如将encrypted设置为true或强制TLS,但都没有成功。我可能遗漏了什么,但不知道是什么…

当您的客户端尝试订阅专用通道时,是否有任何错误?您是否确保配置了身份验证路由并且可以从客户端访问?频道身份验证与您的应用程序登录不同。默认情况下,Laravel将使用/broadcasting/auth端点授权频道访问。确保客户端能够正确对此端点发出请求可能是值得的(您的生产主机可能会阻止该请求)。作为一般说明,如果在本地和prod中使用相同的代码,但结果不同,则表明存在环境/配置问题,而不是代码问题。感谢您的澄清!开发人员和prod正在请求
广播/auth
,但在开发人员上我收到数据,而在prod中我没有收到任何内容(响应头内容长度为0)。原因可能是什么?我注意到的唯一区别是,我在本地计算机上安装了php7.3,在服务器上安装了7.2。连接是在完全没有订阅之后建立的…@doydoy nvm,我发现了导致此问题的问题。我忘了检查我的
.env
中的
广播驱动程序=
。它被设置为
log
而不是
pusher
。现在它可以工作了。非常感谢,如果没有您的输入,我不会注意到它!很高兴您对它进行了排序!当您的客户端尝试订阅私人频道时,是否有任何错误?您是否确保您的身份验证路由已配置并可从客户端访问?频道身份验证是dif登录应用程序之前。默认情况下,Laravel将使用/broadcasting/auth端点授权频道访问。确保客户端能够正确对此端点发出请求可能是值得的(您的生产主机可能会阻止该请求)。作为一般说明,如果在本地和prod中使用相同的代码,但结果不同,则表明存在环境/配置问题,而不是代码问题。感谢您的澄清!开发人员和prod正在请求
广播/auth
,但在开发人员上我收到数据,而在prod中我没有收到任何内容(响应头内容长度为0)。原因可能是什么?我注意到的唯一区别是,我在本地计算机上安装了php7.3,在服务器上安装了7.2。连接是在完全没有订阅之后建立的…@doydoy nvm,我发现了导致此问题的问题。我忘了检查我的
.env
中的
广播驱动程序=
。它被设置为
log
取代了
pusher
。现在它可以工作了。非常感谢,如果没有您的输入,我不会注意到它的!很高兴您把它整理好了!