laravel / reverb

Laravel Reverb provides a real-time WebSocket communication backend for Laravel applications.
https://reverb.laravel.com
MIT License
1.15k stars 95 forks source link

Whisper events are being received multiple times when using the scaling function. #270

Open MarcelM1109 opened 3 weeks ago

MarcelM1109 commented 3 weeks ago

Reverb Version

1.4.0

Laravel Version

11.8.0

PHP Version

8.2

Description

When using the scaling function in Laravel Reverb, listenForWhisper events on the client side are triggered multiple times. When Client A sends a whisper event, the listenForWhisper event on Client B is triggered more than once, despite only one whisper event being expected.

Steps To Reproduce

  1. Enable the scaling function in Laravel Reverb.
  2. Ensure both Client A and Client B join the same channel.
  3. Have Client A send a whisper event in the channel.
  4. Observe that Client B receives the whisper event multiple times instead of only once.
crynobone commented 3 weeks ago

Hey there, thanks for reporting this issue.

We'll need more info and/or code to debug this further. Can you please create a repository with the command below, commit the code that reproduces the issue as one separate commit on the main/master branch and share the repository here?

Please make sure that you have the latest version of the Laravel installer in order to run this command. Please also make sure you have both Git & the GitHub CLI tool properly set up.

laravel new bug-report --github="--public"

Do not amend and create a separate commit with your custom changes. After you've posted the repository, we'll try to reproduce the issue.

Thanks!

MarcelM1109 commented 3 weeks ago

I just reproduced the issue again. Events are not received multiple times, but the sender of a client event does receive their own whisper when scaling is enabled. When scaling is disabled, a whisper is not received by the sender, so I assume this behavior is unintended.

MarcelM1109 commented 3 weeks ago

Here is the code I used to reproduce the bug: https://github.com/MarcelM1109/bug-report

joedixon commented 2 weeks ago

I just reproduced the issue again. Events are not received multiple times, but the sender of a client event does receive their own whisper when scaling is enabled. When scaling is disabled, a whisper is not received by the sender, so I assume this behavior is unintended.

Looking into this a bit, I can see the issue. I'll address this soon.