我正在使用 Laravel Echo 和 React Native 在我的移动应用程序中实现实时。我遵循了文档,但无论如何它都不起作用。
我使用 Redis 驱动程序广播我的事件,Laravel-echo-server 用于 Socket.io 服务器和 Socket.io-client 在客户端侦听事件。
在 Redis 端,一切似乎都运行良好,因为通过“redis-cli monitor”命令,事件写得很好。在 Laravel-echo-server 端,一切看起来也不错,因为当我触发事件时我的日志中有这个(所以我假设用户成功加入了频道):
[2:54:48 PM] - Eri_5PZDB5gkvShrBBBH authenticated for: private-App.User.4016
[2:54:48 PM] - Eri_5PZDB5gkvShrBBBH joined channel: private-App.User.4016
Channel: ami_database_private-App.User.4016
Event: App\Events\UpdateRequest
Run Code Online (Sandbox Code Playgroud)
除了我没有在客户端触发事件并且我在 Chrome 开发控制台中没有任何内容。我还检查了“WS”部分中的“网络”选项卡,同样没有显示任何内容。
我已经尝试了针对论坛不同主题提出的所有解决方案,但没有任何改变
以下是我在事件中定义频道的方式(我的班级实现了 ShouldBroadcast):
[2:54:48 PM] - Eri_5PZDB5gkvShrBBBH authenticated for: private-App.User.4016
[2:54:48 PM] - Eri_5PZDB5gkvShrBBBH joined channel: private-App.User.4016
Channel: ami_database_private-App.User.4016
Event: App\Events\UpdateRequest
Run Code Online (Sandbox Code Playgroud)
这就是我触发事件的方式:我正在使用 AWS 的 EC2 和 Elasticache
public function broadcastOn()
{
return new PrivateChannel('App.User.' . $this->receiver->id);
}
Run Code Online (Sandbox Code Playgroud)
这是我在 …