Websocket issues
I'm deploying a backend made on Java Spring with railway. Never had any issue on the past year, but I added it websockets features on this last update. When testing and running everything locally it worked perfectly, but after deploying and changing the URL to poiint to the railway deployment, I can't connect at all.
Solution:Jump to solution
So just as for future reference, if anyone is trying to use WebSocketSharp to connect to Railway, it won't work due to WebSocketSharp issues
23 Replies
Project ID:
c17693fa-8f81-4f00-ad4d-8f231f687806
c17693fa-8f81-4f00-ad4d-8f231f687806
what is the exact url you are using
When running locally connecting to:
ws://localhost:8002/ws?token= with the correct token connects perfectly
changed it to the public railway url like I did for all HTTP requests:
and it can't connect at all
There is a log on the server that prints when a connection gets established, but the socket never opens at all
does your http server and websocket server listen on different ports?
nope
locally both run on 8002 without issues
what error does the console logs in the browser print?
and just to clear up any confusion, this would not be a platform issue
It's strange, now I managed to connect through postman to the railway wss
but with the exact same url from the actual client (Made sure by making it print the url+token and pasting it into postman) and the client gets instantly replied with a closed websocket by railway
printing the state goes from "Connecting" to "Closed" but when running locally it goes from "Connecting" to "Opened"
we are not closing the connection, this would be an issue with your application's code or configuration, from either your server or client
^
It doesn't give any error at all
in the railway logs it never shows the connection opened in the first place
You would want to add better error handling so that you can see the reason it fails to connect, or the reason your application does not accept the connection
That is what's throwing me off. There are logs for any error message that gets thrown as I could test everything when running locally
All I do different between local and deploy is switching the BaseURL field
locally after a connection I can see the closing reason, status and everything
but here I don't even get connected in the first place
without proper error logging and just general verbose logging it is going to be quite hard to debug the issue with your code
Okay, it's refusing the connection with a code 1015
have you looked into why your code or configuration could be causing that?
All I'm finding related to said error are SSL certificates related errors
but I thought railway handled the certificates
we do
@Brody is there a way to check which TLS version railway is using?
1.1 and 1.2
welp, the Unity library wasn't compatible with Railway's certificate it seems
had to change to a different library and it now works all fine
Solution
So just as for future reference, if anyone is trying to use WebSocketSharp to connect to Railway, it won't work due to WebSocketSharp issues
glad you where able to figure out the issue with your code, and thank you for the follow up!