docs: Documentation WebSocket et corrections
All checks were successful
build-and-push-ext / build_push (push) Successful in 7s
All checks were successful
build-and-push-ext / build_push (push) Successful in 7s
- Ajout de docs/WEBSOCKET_CONFIGURATION.md - Gestion d'erreurs WebSocket améliorée - Tests WebSocket documentés - Problème persistant Nginx documenté
This commit is contained in:
parent
f318140d59
commit
86e7a4eee6
@ -5,6 +5,12 @@ Toutes les modifications notables de ce projet seront documentées ici.
|
||||
Format inspiré de Keep a Changelog et versionnage SemVer.
|
||||
|
||||
## [Unreleased]
|
||||
### Corrections WebSocket et configuration
|
||||
- **Documentation WebSocket** : Ajout de `docs/WEBSOCKET_CONFIGURATION.md` avec analyse complète
|
||||
- **Gestion d'erreurs WebSocket** : Amélioration avec `log::warn!` pour les tentatives de connexion non-WebSocket
|
||||
- **Tests WebSocket** : Documentation des tests avec headers corrects et incorrects
|
||||
- **Problème persistant** : Nginx ne transmet pas les headers WebSocket (investigation en cours)
|
||||
|
||||
### Ajouts
|
||||
- **Configuration externalisée avancée** : Ajout des variables d'environnement `WS_BIND_URL`, `HEALTH_PORT`, `HEALTH_BIND_ADDRESS`
|
||||
- **Configuration externalisée** : Ajout de la variable d'environnement `SDK_RELAY_WS_URL` pour les tests
|
||||
|
@ -1,28 +1,68 @@
|
||||
# Configuration WebSocket - SDK Relay
|
||||
# Configuration WebSocket - sdk_relay
|
||||
|
||||
## Variables d'environnement
|
||||
## Configuration actuelle
|
||||
|
||||
### Variables d'environnement
|
||||
- `WS_BIND_URL` : URL de binding WebSocket (défaut: `0.0.0.0:8090`)
|
||||
- `HEALTH_PORT` : Port du serveur de santé (défaut: `8091`)
|
||||
- `HEALTH_BIND_ADDRESS` : Adresse de binding du serveur de santé (défaut: `0.0.0.0`)
|
||||
|
||||
## Configuration WebSocket
|
||||
Le relay accepte uniquement les connexions WebSocket valides avec les headers :
|
||||
- `Upgrade: websocket`
|
||||
- `Connection: upgrade`
|
||||
- `Sec-WebSocket-Version: 13`
|
||||
- `Sec-WebSocket-Key: [base64-encoded-key]`
|
||||
|
||||
## Réponse attendue
|
||||
```
|
||||
HTTP/1.1 101 Switching Protocols
|
||||
connection: Upgrade
|
||||
upgrade: websocket
|
||||
sec-websocket-accept: [calculated-accept-key]
|
||||
### Configuration dans sdk_relay.conf
|
||||
```ini
|
||||
ws_url="0.0.0.0:8090"
|
||||
blindbit_url="http://blindbit-oracle:8000"
|
||||
bootstrap_url="wss://dev3.4nkweb.com/ws/"
|
||||
bootstrap_faucet=true
|
||||
sp_address="tsp1qqgmwp9n5p9ujhq2j6cfqe4jpkyu70jh9rgj0pwt3ndezk2mrlvw6jqew8fhsulewzglfr7g2aa48wyj4n0r7yasa3fm666vda8984ke8tuaf9m89"
|
||||
RUST_LOG="INFO"
|
||||
```
|
||||
|
||||
## Rejet des requêtes HTTP
|
||||
Les requêtes HTTP simples sont rejetées avec l'erreur :
|
||||
`WebSocket protocol error: Unsupported HTTP method used - only GET is allowed`
|
||||
## Problèmes résolus
|
||||
|
||||
## Date
|
||||
2025-09-20
|
||||
### 1. Binding sur 127.0.0.1 au lieu de 0.0.0.0
|
||||
**Problème :** Le relay se liait sur `127.0.0.1:8090` au lieu de `0.0.0.0:8090`.
|
||||
|
||||
**Solution :** Externalisation de la configuration via variables d'environnement et correction du code Rust.
|
||||
|
||||
### 2. Gestion des erreurs WebSocket
|
||||
**Problème :** Erreurs de handshake WebSocket non gérées correctement.
|
||||
|
||||
**Solution :** Amélioration de la gestion d'erreurs avec `log::warn!` au lieu de `log::error!` pour les tentatives de connexion non-WebSocket.
|
||||
|
||||
### 3. Configuration externalisée
|
||||
**Problème :** IP et ports hardcodés dans le code Rust.
|
||||
|
||||
**Solution :** Externalisation de tous les paramètres de configuration via variables d'environnement.
|
||||
|
||||
## Tests WebSocket
|
||||
|
||||
### Test avec headers corrects
|
||||
```bash
|
||||
curl -v -H "Upgrade: websocket" \
|
||||
-H "Connection: upgrade" \
|
||||
-H "Sec-WebSocket-Version: 13" \
|
||||
-H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
|
||||
http://127.0.0.1:8090/
|
||||
```
|
||||
|
||||
**Résultat attendu :** `HTTP/1.1 101 Switching Protocols`
|
||||
|
||||
### Test sans headers WebSocket
|
||||
```bash
|
||||
curl -v http://127.0.0.1:8090/
|
||||
```
|
||||
|
||||
**Résultat attendu :** Erreur de handshake WebSocket (normal)
|
||||
|
||||
## Problème persistant
|
||||
|
||||
### Nginx ne transmet pas les headers WebSocket
|
||||
**Statut :** ⚠️ Problème persistant
|
||||
- Nginx configuré avec tous les headers WebSocket
|
||||
- Le relay reçoit toujours des connexions sans headers
|
||||
- Erreur : `"No Upgrade: websocket header"`
|
||||
|
||||
**Investigation :** La configuration Nginx semble correcte mais les headers ne sont pas transmis.
|
||||
|
||||
## Date de mise à jour
|
||||
2025-01-20 - Configuration WebSocket externalisée et problèmes de binding résolus
|
Loading…
x
Reference in New Issue
Block a user