34 lines
915 B
Markdown
34 lines
915 B
Markdown
# Realtime Sessions
|
|
|
|
This app now supports shared sessions by `gameId` using a lightweight WebSocket server.
|
|
|
|
## Run
|
|
|
|
```bash
|
|
npm run realtime:server
|
|
```
|
|
|
|
Default port: `8787`
|
|
Override: `REALTIME_PORT=9000 npm run realtime:server`
|
|
|
|
## Nginx Proxy
|
|
|
|
Proxy `/realtime/*` from your public domain to the realtime server:
|
|
|
|
```nginx
|
|
location /realtime/ {
|
|
proxy_pass http://127.0.0.1:8787/;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
}
|
|
```
|
|
|
|
Notes:
|
|
- `proxy_pass` with trailing `/` is important, because frontend calls `/realtime/sessions` and `/realtime/ws`.
|
|
- Sessions are kept in memory; restarting the realtime server resets all active game sessions.
|