tlaverdure / laravel-echo-server

Socket.io server for Laravel Echo
MIT License
2.65k stars 510 forks source link

Laravel Echo Server (Socket.io) doesn't send pong response within pingTimeout #552

Open mathiasmoser opened 3 years ago

mathiasmoser commented 3 years ago

Describe the bug Since about 2 weeks we are investigating a strange behaviour in our Broadcasting Service. At some point the Laravel-Echo-Server stops sending ping responses or broadcast data, the client sends a ping via Websocket Connection, but the Server doesn't respond with a pong message, so after reaching the pingTimeout the connection is closed with ping timeout error. Socket.io Client tries to reconnect, establishes a connection but then again - ping timeout.

The only way to "solve" the problem is to restart the laravel-echo-server process on the server. After the restart the broadcasting is working again.

There are no errors in the produced Error Logs - the stdout logs only show a lot of ping timeouts...

Context

We are using Laravel as a Backend API. Broadcasting ist done with Broadcasting Driver Redis. We are using Laravel Echo Server in Combination with Laravel Echo Client + Socket.io.

Laravel Echo Server Version: 1.5.0 Laravel Echo Client: 1.8.1 Socket.io Client: 2.3.0

In the Frontend we are using a standalone Angular Application.

Question What can be the reason for such a behaviour? I mean the Server seems to accept the connection first, but then is not able to broadcast any data over the connection (ping/pong, broadcast data). Does someone have any hints how to debug our problem?

rin4ik commented 3 years ago

experiencing the same issue