在Laravel Vapor上使用Laravel Echo(推进器)

在Laravel Vapor上使用Laravel Echo(推进器),laravel,laravel-echo,pusher-js,laravel-vapor,Laravel,Laravel Echo,Pusher Js,Laravel Vapor,我很难找到为什么我的事件在前端(Laravel Echo+Pusher)没有“触发”,而我的应用程序是通过Laravel Vapor部署的,尽管它在本地运行得非常好 实际上显示事件实际上是由Laravel应用程序发送给Pusher的 由于我几乎浪费了大约半天的时间来找出问题所在(幸运的是,我看到我的消息实时显示在我的本地环境中,而不是在登台后登台),我想我会再花10分钟在这里写一篇帖子,所以有些人(希望如此)不需要浪费那么多时间。问题实际上是: Vapor首先在.Vapor目录中本地构建应用程

我很难找到为什么我的事件在前端(Laravel Echo+Pusher)没有“触发”,而我的应用程序是通过Laravel Vapor部署的,尽管它在本地运行得非常好

实际上显示事件实际上是由Laravel应用程序发送给Pusher的


由于我几乎浪费了大约半天的时间来找出问题所在(幸运的是,我看到我的消息实时显示在我的本地环境中,而不是在登台后登台),我想我会再花10分钟在这里写一篇帖子,所以有些人(希望如此)不需要浪费那么多时间。

问题实际上是:

  • Vapor首先在
    .Vapor
    目录中本地构建应用程序
  • 在此构建过程中加载的
    .env
    中的推送键是本地
    .env
    (!)中的推送键,这意味着如果在
    .env.{environment}
    中设置
    混合推送器应用程序键和
    混合推送器应用程序集群
    环境变量,则推送键不会改变任何内容(这是从运行
    vapor-env:pull{environment}
    得到的
我以一种快速(肮脏)的方式解决了这个问题:

  • 再添加几个环境变量:
PUSHER\u APP\u ID=
推动器应用键=
推送器应用程序机密=
推进器应用程序集群=欧盟
#php artisan pusher中必需的:凭据`
推动器\本地\应用\键=
推进器\本地\应用\集群=欧盟
#php artisan pusher中必需的:凭据`
推送器\分段\应用\键=
推送器\分段\应用程序\集群=eu
#php artisan pusher中必需的:凭据`
推杆\生产\应用\钥匙=
推进器\生产\应用\集群=欧盟
MIX_PUSHER_APP_KEY=“${PUSHER_LOCAL_APP_KEY}”
MIX_PUSHER_APP_CLUSTER=“${PUSHER_LOCAL_APP_CLUSTER}”
  • 将新命令(在
    纱线运行生产之前
    )添加到Vapor构建过程:
    php artisan pusher:credentials{environment}
    。因此,对于登台,您将使用
    php artisan pusher:credentials登台
该命令如下所示:

我花了好几个小时试图解决同一个问题,但我差点就失去它了

我刚刚发现这篇文章描述了一个npm软件包,它有助于解决这个问题

来源

NPM包

谢谢!似乎是一个更干净的解决方案。我将对此进行调查,并在调查之后将您的答案标记为接受。