Laravel Echo 是一个 JavaScript 库,用于在浏览器中实现实时通信。它通常与 Laravel Echo Server 或 Pusher 一起使用,支持 WebSocket 协议(ws 或 wss)进行实时数据传输。
Laravel Echo 默认尝试连接 wss
(WebSocket Secure),因为 wss
提供了数据传输的安全性。在生产环境中,出于安全考虑,建议使用 wss
来保护数据传输。
如果你希望 Laravel Echo 连接到非加密的 WebSocket 服务器(ws
),可以在配置文件中进行修改。
config/broadcasting.php
文件。connections
部分,修改 redis
或 pusher
的配置:'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'url' => env('REDIS_URL'),
],
'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', 'mt1'),
'useTLS' => false, // 设置为 false 以使用 ws 而不是 wss
],
],
],
.env
文件中的相关配置:BROADCAST_DRIVER=pusher
PUSHER_APP_KEY=your-pusher-app-key
PUSHER_APP_SECRET=your-pusher-app-secret
PUSHER_APP_ID=your-pusher-app-id
PUSHER_APP_CLUSTER=mt1
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: false, // 设置为 false 以使用 ws 而不是 wss
});
通过以上步骤,你可以控制 Laravel Echo 连接到 ws
或 wss
。在生产环境中,建议使用 wss
以确保数据传输的安全性。
领取专属 10元无门槛券
手把手带您无忧上云