AWS 中的 Laravel WebSockets 推送器

Posted

技术标签:

【中文标题】AWS 中的 Laravel WebSockets 推送器【英文标题】:Laravel WebSockets pusher in AWS 【发布时间】:2022-01-24 05:46:36 【问题描述】:

我创建了一个套接字应用程序,它在本地运行良好 但是当我想测试它是否可以在 AWS 中工作时,它给了我这个错误

照亮\广播\广播异常 Pusher 错误:"error":"Unknown app id 12345 provided.".

我不知道 AWS 上的设置是否会有所不同 或者是缓存问题

这是我的坐姿

brodcasting.php

'connections' => [

    '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' => true,
            //'forceTLS'=>true,
            'encrypted' => true,
            'host' => '127.0.0.1',
            'port'=>'6001',
            'scheme'=> 'http',
            //'curl_options' => [
           //     CURLOPT_SSL_VERIFYHOST => 0,
          //      CURLOPT_SSL_VERIFYPEER => 0,
          //    ]
        ],
    ],

websoket.php

'apps' => [
    [
        'id' => env('PUSHER_APP_ID'),
        'name' => env('APP_NAME'),
        'key' => env('PUSHER_APP_KEY'),
        'secret' => env('PUSHER_APP_SECRET'),
        //'path' => env('PUSHER_APP_PATH'),
        //'capacity' => null,
        'enable_client_messages' => false,
        'enable_statistics' => true,
        
    ],
],

bootstrap.php

 window.Echo = new Echo(
 broadcaster: 'pusher',
 key: env('PUSHER_APP_KEY'),
 //cluster: process.env.MIX_PUSHER_APP_CLUSTER,
 //forceTLS: true,
 wsHost: window.location.hostname,
 wsPort: 6001,
 forceTLS: false,
 disableStats: true, );

【问题讨论】:

它只是说错误。您应该提供一个有效的PUSHER_APP_ID 因为我使用的 WebSocket 服务器来自 Beyond 我低估了服务器替换推送器,所以我需要为推送器创建自己的密钥和 ID,而不是使用推送器网站提供给我的密钥。 【参考方案1】:

这意味着您可能需要更改 broadcasting.php 中的 'host' 以指向您的 laravel-websockets 正在运行的任何 IP/域

【讨论】:

更改后给我(504 网关超时)

以上是关于AWS 中的 Laravel WebSockets 推送器的主要内容,如果未能解决你的问题,请参考以下文章

laravel中的双向WebSockets?

如何在 laravel 应用程序中使用 docker 容器启动运行 websockets

无法通过 websockets 发布到 aws mqtt 代理

[AWS] WebSockets with API Gateway

Laravel 中的服务器发送事件

AWS API Gateway Websockets——connectionID 在哪里?