
Système proxy HTTP basé sur BLE routant le trafic du navigateur via un appareil iOS. Prend en charge HTTP/HTTPS, la compression des données et un mode simulé pour les tests sans matériel.
Un système de proxy HTTP basé sur Bluetooth Low Energy (BLE) qui achemine le trafic du navigateur web via un appareil iOS. Cela permet de naviguer sur le web via la connexion Internet de l'appareil iOS en utilisant BLE comme couche de transport.
Browser → Windows Proxy → BLE/TCP → iOS/Mock Service → WiFi → Internet
← Windows Proxy ← BLE/TCP ← iOS/Mock Service ← WiFi ←
windows-proxy/)127.0.0.1:8080 (par défaut)mock-ios-service/)127.0.0.1:9999 (par défaut)Terminal 1 - Démarrer le service iOS simulé :
cd mock-ios-service
npm install
npm start
Terminal 2 - Démarrer le proxy Windows en mode simulé :
cd windows-proxy
npm install
npm run mock
Configurer le navigateur :
127.0.0.1:8080Terminal 1 - Démarrer le proxy Windows :
cd windows-proxy
npm install
npm start
Appareil iOS :
Configurer le navigateur :
127.0.0.1:8080Toutes les données sont transmises dans un format compressé par blocs :
[en-tête de longueur 4 octets][charge utile JSON compressée]
// Requête
{
id: "uuid", // Identifiant unique de la requête
method: "GET", // Méthode HTTP
url: "https://...", // URL cible
headers: {}, // En-têtes HTTP
body: "base64...", // Corps de la requête (base64)
isConnect: false // Indicateur HTTPS CONNECT
}
// Réponse
{
id: "uuid", // Identifiant de la requête correspondante
statusCode: 200, // Code statut HTTP
headers: {}, // En-têtes de réponse
body: "base64...", // Corps de la réponse (base64)
success: true // Pour les requêtes CONNECT
}
// windows-proxy/config.js
{
proxy: {
host: "127.0.0.1",
port: 8080,
timeout: 30000
},
ble: {
serviceUUID: "a1b2c3d4-...",
// ... autres UUID
}
}
# Mode simulé
MOCK_MODE=true
# Paramètres du proxy
PROXY_HOST=127.0.0.1
PROXY_PORT=8080
# UUIDs BLE
BLE_SERVICE_UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef
# Service simulé
MOCK_SERVICE_HOST=127.0.0.1
MOCK_SERVICE_PORT=9999
127.0.0.1:8080127.0.0.1:8080localhost, 127.0.0.1127.0.0.1 Port : 8080127.0.0.1 Port : 8080ble_proxy/
├── windows-proxy/ # Central BLE Windows + Proxy HTTP
│ ├── proxy.js # Serveur proxy principal
│ ├── ble-client.js # Client BLE réel
│ ├── mock-ble-client.js # Client BLE simulé (TCP)
│ ├── config.js # Configuration
│ └── demo.js # Script de démonstration
├── mock-ios-service/ # Périphérique BLE iOS simulé
│ ├── mock-ios.js # Serveur TCP principal
│ ├── http-client.js # Gestionnaire de requêtes HTTP
│ └── demo.js # Script de démonstration
└── ios-app/ # Application iOS native (future)
Tests unitaires :
# Tester le proxy Windows
cd windows-proxy
npm test
# Tester le service simulé
cd mock-ios-service
npm test
Test d'intégration :
# Démarrer les deux services et tester avec curl
curl -x http://127.0.0.1:8080 https://httpbin.org/ip
Activer la journalisation de débogage :
# Proxy Windows
NODE_ENV=development npm start
# Service simulé
NODE_ENV=development npm start
Débogage BLE (Windows) :
# Vérifier le statut de l'adaptateur BLE
Get-PnpDevice | Where-Object {$_.Name -like "*Bluetooth*"}
# Surveiller le trafic BLE (nécessite des outils)
# BLE ne fonctionne pas
npm run mock # Utiliser le mode simulé à la place
# Port déjà utilisé
netstat -ano | findstr :8080
# Échec des dépendances
npm run install-build-tools
# Port 9999 utilisé
netstat -ano | findstr :9999
# Connexion refusée
# S'assurer que le service simulé démarre avant le proxy
# Effacer les paramètres de proxy
# Vérifier les paramètres de proxy Windows
# Désactiver les autres VPN/proxy
⚠️ Cet outil est destiné au développement/à des tests. Tenez compte des implications de sécurité :
git checkout -b feature/name)Licence MIT - voir le fichier LICENSE pour les détails
Statut : ✅ Tests simulés prêts | 🚧 Application iOS en développement | 📋 Fonctionnalités de production planifiées