Hello everyone,
I’m developing an iOS application that uses WebSocket Secure (wss) to connect to a backend server, which is working correctly. The server is hosted on Render.com and accepts connections over https and wss.
Context:
• I can connect to the backend without issues using HTTPS from both the app and a web browser.
• Using Node.js and the Socket.IO client, the WebSocket connection to the server works correctly over wss://.
• The server is configured with a valid SSL certificate (the HTTPS connection is verified and works in a browser).
• The problem occurs when I try to connect from the iOS client (using Socket.IO in Swift) to the server through wss://social-gamer-backend.onrender.com. The connection consistently fails on iOS.
The Issue:
Even though the URL is correctly configured, and I can connect via Node.js, when I attempt to connect from the iOS app, I get connection-related errors. The most common error is:
Error while connecting to the socket: Tried emitting when not connected
• The server URL is correct (wss://social-gamer-backend.onrender.com).
• The JWT token is being sent correctly in the headers.
• There are no visible SSL certificate issues since the HTTPS connection works fine.
• I’ve tried enabling and disabling App Transport Security (ATS) in the Info.plist.
• From Node.js, the same connection code works fine, indicating that the WebSocket server is active and operational.
Current iOS Configuration:
let manager = SocketManager(socketURL: url, config: [
.log(true),
.compress,
.reconnects(true),
.forceWebsockets(true),
.extraHeaders(["Authorization": "Bearer (token)"])
])
What I’ve tried so far:
1. I’ve tested the connection on different networks, including Wi-Fi and mobile data.
2. I’ve checked the iOS device restrictions and disabled potential network limitations.
3. I’ve enabled detailed logs in Crashlytics, but I can’t find any relevant information indicating why the connection is failing.
4. The same URL with wss:// works on Node.js, so it’s not an issue with the WebSocket server.
Question:
What could be preventing the iOS app from establishing a successful connection to the WebSocket server over wss://? Is there anything else I should configure in the app or server to allow iOS to handle secure WebSocket connections?
I would appreciate any help or suggestions to resolve this issue.
Thank you in advance.