为什么 Laravel Pusher 在服务器中不工作
Why Laravel Pusher is not working in server
我在我的 Web 应用程序中使用 Pusher。我的后端是用 Laravel 构建的,前端是用 Angular 10 构建的。一切都在我的本地机器上完美运行。但是在服务器中它不起作用。客户端连接失败,出现以下错误:
Pusher : : [{"type":"WebSocketError","error":{"type":"PusherError","data":{"code":4001,"message":"Could not find app key `4895a6a5e4626a3afdfb`."}}}]
在我的本地机器上,一切正常。在 angular 和 laravel 项目中,我都使用相同的应用程序密钥。并且密钥是从 pusher 网站正确收集的。
这是我的客户端连接代码:
constructor() {
console.log(window.location.hostname);
this.pusher = new Pusher(environment.pusher.key, {
cluster: environment.pusher.cluster,
wsHost: '162.214.125.121',
// wsHost: '127.0.0.1',
wsPort: 6001,
encrypted: false,
forceTLS: false,
});
this.channel = this.pusher.subscribe('draw_options');
Pusher.log = (msg) => {
console.log(msg);
};
}
export const environment = {
production: false,
pusher: {
key: '4895a6a5e4626a3afdfb',
cluster: 'mt1',
}
};
在我的 laravel 环境中:
PUSHER_APP_ID=1069575
PUSHER_APP_KEY=4895a6a5e4626a3afdfb
PUSHER_APP_SECRET=__its_correct_as_well__
PUSHER_APP_CLUSTER=mt1
在我的 broadcasting.php
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'useTLS' => false,
'encrypted' => false,
// 'host' => '162.214.125.121',
'host' => '127.0.0.1',
'port' => 6001,
'scheme' => 'http'
],
],
本地机器一切正常。但是在服务器中这失败了
如果你转到下面的 url,你会看到,socket 正在通过 laravel 进行连接。
http://api.etakweet.com/laravel-websockets
我也注意到,laravel 项目广播事件时没有找到日志。
已通过 运行 以下命令成功连接。
php artisan config:clear
我在我的 Web 应用程序中使用 Pusher。我的后端是用 Laravel 构建的,前端是用 Angular 10 构建的。一切都在我的本地机器上完美运行。但是在服务器中它不起作用。客户端连接失败,出现以下错误:
Pusher : : [{"type":"WebSocketError","error":{"type":"PusherError","data":{"code":4001,"message":"Could not find app key `4895a6a5e4626a3afdfb`."}}}]
在我的本地机器上,一切正常。在 angular 和 laravel 项目中,我都使用相同的应用程序密钥。并且密钥是从 pusher 网站正确收集的。
这是我的客户端连接代码:
constructor() {
console.log(window.location.hostname);
this.pusher = new Pusher(environment.pusher.key, {
cluster: environment.pusher.cluster,
wsHost: '162.214.125.121',
// wsHost: '127.0.0.1',
wsPort: 6001,
encrypted: false,
forceTLS: false,
});
this.channel = this.pusher.subscribe('draw_options');
Pusher.log = (msg) => {
console.log(msg);
};
}
export const environment = {
production: false,
pusher: {
key: '4895a6a5e4626a3afdfb',
cluster: 'mt1',
}
};
在我的 laravel 环境中:
PUSHER_APP_ID=1069575
PUSHER_APP_KEY=4895a6a5e4626a3afdfb
PUSHER_APP_SECRET=__its_correct_as_well__
PUSHER_APP_CLUSTER=mt1
在我的 broadcasting.php
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'useTLS' => false,
'encrypted' => false,
// 'host' => '162.214.125.121',
'host' => '127.0.0.1',
'port' => 6001,
'scheme' => 'http'
],
],
本地机器一切正常。但是在服务器中这失败了 如果你转到下面的 url,你会看到,socket 正在通过 laravel 进行连接。 http://api.etakweet.com/laravel-websockets
我也注意到,laravel 项目广播事件时没有找到日志。
已通过 运行 以下命令成功连接。
php artisan config:clear