I have a strange problem with an SSL websocket connection that only occurs on iOS. Under Windows it runs completely problem-free with all browsers. I have this simple function to send text frames to the server:
ws.onopen = function () {
// Some code
setInterval(function(){
dbg("State:",ws.readyState,"-", ws.bufferedAmount);
if(ws.bufferedAmount == 0){
var data=getSendQ();
if (data.length!=0) {
data+=DUMMYSENDER; // 3 Spaces as Dummy
ws.send(data);
}
}
},OUTQTICK); // 50ms
// some code
putSendQ(
_cmd.REQ_LOGIN + _user.name + TR + _user.passwordEncoded + TR + REMOTEHOST + TR + "87228732" + TR + VV
);
// some code
};
Ultimately, sending data on a journey is not rocket science.
The socket handshake is carried out correctly, but only 2 of the 102 bytes of the login data are sent. Sometimes 4 or 6. Very rarely all data is sent and the login works. Once the login has worked, the connection is stable and there are no more problems with data exchange. I've tried everything. Among other things, I tried to replace the text frames with binary frames. The result is identical. Usually only the first 2 bytes of the frame are sent.
The crazy thing is: the moment I close the window, the rest of the data is sent. At that moment, a correct close frame is also sent. The problem occurred with iOS 15. I currently have iOS 15.2
Does anyone know the problem and may have already solved it? I'm still going crazy. I've been looking for a solution for three days and can't get any further.
I am grateful for every tip, no matter how small.
Greetings from the rainy North Sea coast Joachim