laravel-swoole icon indicating copy to clipboard operation
laravel-swoole copied to clipboard

Websocket works incorrectly

Open AkioSarkiz opened this issue 4 years ago • 7 comments

  1. PHP 8, swoole 4.6.6
  2. Laravel 8
  3. 2.8.1
  4. When i send emit to concrete user, message sent to current user + my id;
  5. I upload images with code and result.

it's my route

Websocket::on('example', function ($websocket, $data) {
   $websocket->toUserId([1])->emit('notification', 'only for you message id: 1');
});

User with login=admin & id=2, sent example emit and his got notification for user by id 1. img

User with login=user & id=1, too his got too this message. img

Notice: When i emit from user 1, user 2 don't receiveding message.

P.S. from docs img

AkioSarkiz avatar May 01 '21 14:05 AkioSarkiz

Thanks for open this issue!

I'll check it out

Arkanius avatar May 13 '21 19:05 Arkanius

Three months have passed. And the bug was not fixed

AkioSarkiz avatar Aug 09 '21 05:08 AkioSarkiz

Hi @Arkanius ,

What is your expected result? Can't understand your question yet.

Websocket::on('example', function ($websocket, $data) {
   $websocket->toUserId([1])->emit('notification', 'only for you message id: 1');
});

It will listen to example event, and always send a message to user 1 when this event is triggered.

albertcht avatar Aug 09 '21 06:08 albertcht

Hi @albertcht!

I think he's saying that the "emit" is always sending the message to the user with id 1 and 2 when it should send just to the user with id 1

Arkanius avatar Aug 09 '21 16:08 Arkanius

yes, if user with id 2 send a message to only for 1, user with id 1 gets message, but and user with id 2 gets message

AkioSarkiz avatar Aug 12 '21 10:08 AkioSarkiz

@AkioSarkiz What about the other users? I mean, if you have user 3. This user will get the message as well?

Arkanius avatar Aug 28 '21 02:08 Arkanius

@Arkanius no, only current (frist) + second

AkioSarkiz avatar Aug 28 '21 21:08 AkioSarkiz