Well known problem, Safari on iOS or on MacOS refuses the websockets connection if one of the following issues is present on users side

1. user uses IP to access the server via https (example https://22.44.55.11 - but http://22.44.55.11 is not affected!)

2. or user uses https with self-signed certificate for domain (example https://my_domain.com - but again http://my_domain.com unaffected)

3. or user uses outdated/invalid certificate for https connection.


That is not TSplus issue but pure invention of Apple to stop any potential hacker activities on iOS/Mac devices for websockets when the secured connection authority(https certificate) can't be verified. As workaround the client drops to compatibility mode with slow XHR connection.


To fix this issue you have few different ways how you may proceed.

1. buy domain(example https://my_domain.com) and sign it by authority(example Let's Encrypt etc.), that is what Apple expects from you to do.

2. or use http address (insecure, if only port 443 used then try http://my_domain.com:443/ - No SSL redirection allowed!)

3. or install self signed certificate on iOS/Mac device directly. (very tricky indeed)

4. or use another browser (at least possible for Mac but not possible for iOS!)


Remark: under specific circumstances the IPs can be signed, but smarter it would be to buy domain and sign it for free.