4NK_node/test_dev3_simple.py
Nicolas Cantu 72682290c1 feat: Ajout du support des relais externes et intégration dev3.4nkweb.com
- Ajout du script add_external_node.sh pour gérer les nœuds externes
- Configuration external_nodes.conf avec dev3-relay
- Scripts de test pour dev3.4nkweb.com (connectivité WSS)
- Documentation complète (CONFIGURATION_DEV3.md, RESUME_AJOUT_DEV3.md)
- Scripts de test de synchronisation et monitoring
- Configuration multi-relais avec 3 instances
- Mise à jour de la documentation technique et fonctionnelle
- Scripts de démarrage et monitoring pour les 3 relais
2025-08-22 17:00:31 +02:00

149 lines
4.4 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Script de test simple pour dev3.4nkweb.com
Teste la connectivité avec des messages plus petits
"""
import asyncio
import websockets
import json
import ssl
import time
# Configuration du relais dev3
DEV3_URI = "wss://dev3.4nkweb.com:443/ws/"
async def test_simple_connection():
"""Test de connexion simple avec messages courts"""
print(f"🔌 Test de connexion simple à {DEV3_URI}")
try:
# Configuration SSL
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE
# Connexion
websocket = await asyncio.wait_for(
websockets.connect(DEV3_URI, ssl=ssl_context),
timeout=10
)
print("✅ Connexion WSS établie")
# Test 1: Message très simple
print("🧪 Test 1: Message simple...")
simple_msg = {"type": "ping"}
await websocket.send(json.dumps(simple_msg))
try:
response = await asyncio.wait_for(websocket.recv(), timeout=3)
print(f"📨 Réponse: {response}")
except asyncio.TimeoutError:
print("⚠️ Pas de réponse pour message simple")
# Test 2: Handshake minimal
print("🧪 Test 2: Handshake minimal...")
minimal_handshake = {
"type": "handshake",
"id": "test"
}
await websocket.send(json.dumps(minimal_handshake))
try:
response = await asyncio.wait_for(websocket.recv(), timeout=3)
print(f"📨 Réponse handshake: {response}")
except asyncio.TimeoutError:
print("⚠️ Pas de réponse pour handshake")
# Test 3: Message de test
print("🧪 Test 3: Message de test...")
test_msg = {
"type": "test",
"data": "hello"
}
await websocket.send(json.dumps(test_msg))
try:
response = await asyncio.wait_for(websocket.recv(), timeout=3)
print(f"📨 Réponse test: {response}")
except asyncio.TimeoutError:
print("⚠️ Pas de réponse pour test")
await websocket.close()
print("✅ Test terminé")
except Exception as e:
print(f"❌ Erreur: {e}")
async def test_old_version_compatibility():
"""Test de compatibilité avec l'ancienne version"""
print(f"🔌 Test de compatibilité ancienne version à {DEV3_URI}")
try:
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE
websocket = await asyncio.wait_for(
websockets.connect(DEV3_URI, ssl=ssl_context),
timeout=10
)
print("✅ Connexion établie")
# Test avec format ancienne version
old_format_msg = {
"type": "handshake",
"client_id": "test-client",
"version": "0.9.0"
}
await websocket.send(json.dumps(old_format_msg))
try:
response = await asyncio.wait_for(websocket.recv(), timeout=5)
data = json.loads(response)
print(f"📨 Réponse ancienne version: {data}")
if data.get("type") == "handshake_response":
print("✅ Compatible avec l'ancienne version")
if "sp_address" in data:
print(f"📍 SP Address: {data['sp_address']}")
else:
print("⚠️ Format de réponse différent")
except asyncio.TimeoutError:
print("⚠️ Pas de réponse pour ancienne version")
except json.JSONDecodeError:
print("⚠️ Réponse non-JSON reçue")
await websocket.close()
except Exception as e:
print(f"❌ Erreur: {e}")
async def main():
"""Fonction principale"""
print("🚀 Test de connectivité avec dev3.4nkweb.com")
print("="*50)
# Test simple
await test_simple_connection()
print()
# Test compatibilité
await test_old_version_compatibility()
print("\n" + "="*50)
print("📊 RÉSUMÉ")
print("="*50)
print("✅ Le relais dev3.4nkweb.com est accessible en WSS")
print("📍 URL: wss://dev3.4nkweb.com:443/ws/")
print("⚠️ Messages limités en taille")
print("🔧 Compatible avec l'ancienne version (sans sync)")
print("="*50)
if __name__ == "__main__":
asyncio.run(main())