"https://{default}/ws": # is that some default route ? Should I set it in my app router too ?
type: upstream
upstream: "ws-app:http" #what exactly is ws-app ? Should I have a separated app ?
cache:
enabled: false
Knowing that locally the server works fine via ws://127.0.0.1:8080
How to actually start the server in production ? Should I add something in my deploy scripts ?
Should I use RabbitMQ or something similar ? Do I need a worker ?
https:// - since you don’t have a http:// route configured, http:// will automatically redirect to https://.
{default} tells platform.sh to use your default domain assigned to the project. This is good to have in place, especially if you haven’t attached a domain yet. That said, you could type a static value such as my-domain.com
/ws - You’re telling Platform.sh that any request to /ws (https://{default}/ws) should be handled by this route definition. If you’re development environment was sending websocket requests to http://localhost/my/websocket, you should replace /ws with /my/websocket. Use the path that your app is configured to work with.
type: upstream - normally you won’t mess with this. This just let’s Platform.sh know that we are going to direct this to the app that you have defined.
upstream: "ws-app:http"
This works with type: upstream to let Platform.sh know which app you want to answer this request.
ws-app:http - the first part of this is what matters—the ws-app. In your .platform.app.yaml or in your .platform/applications.yaml you will have defined an value like name: app or name: my-symfony-app. Whatever the value of name: is, that should be the first part of this value. In other words, if you use name: my-websocket-app, then in your routes.yaml you will use: upstream: "my-websocket-app:http
Once you have this route pointing to your websocket app, you will want to handle the next step, request buffering.