This topic is an FYI for any members of the community using Y-Websocket who have users on iPhone/iPad/MacOS (Safari).
There is a pretty bad bug in Webkit which has been open for a while where it doesn’t fire the
onerror events when the connection drops due to network changes (such as switching from Wi-Fi to cellular) and which will cause any subsequent user data sent to the Websocket to be lost without any errors being raised.
I was getting a stream of user complaints that data was being lost, primarily from users on iPhone.
I filed an issue in Y-Websocket but wanted to post here too so that any other users of the library can hopefully find it before their users run into data loss issues.
I worked around the issue by implementing a heartbeat protocol in my front and backend to detect loss of connectivity and manually recreate the underlying websocket to reestablish the connection.