Reputation: 499
My websocket connection works:
It DOES NOT work:
There are no console errors in the browser. I can see the websocket is created, but it never fires "open" event on Desktop Safari. On the server side, the connection comes through fine everywhere other than from Desktop Safari, where I don't see anything come in.
The websocket is on the exact domain as the origin, and both are using secure connection (https/wss)
There are a lot of moving parts on production (e.g. load balancer). I've looked at and configured things like "stickiness" and TLS versions on each layer in production.
Again, it works most places.
I'm thinking there must be something like TLS, CORS, etc that I'm not fulling understanding that is causing the breakdown.
This is what happens on iOS (and about the same in Chrome desktop, etc):
This is what happens in Desktop Safari on Mac:
Upvotes: 0
Views: 1716
Reputation: 499
Well. After many hours of spinning my wheels I solved it:
There is a setting in AWS Load Balancer attributes called "Client port preservation". Once I checked this, websockets started to flow from Desktop Safari:
Upvotes: 4