
iOS 기기를 통해 브라우저 트래픽을 라우팅하는 BLE 기반 HTTP 프록시 시스템. HTTP/HTTPS, 데이터 압축, 하드웨어 없이 테스트하기 위한 모의 모드를 지원합니다.
블루투스 저에너지(BLE) 기반 HTTP 프록시 시스템으로, 웹 브라우저 트래픽을 iOS 기기를 통해 라우팅합니다. 이를 통해 BLE를 전송 계층으로 사용하여 iOS 기기의 인터넷 연결을 통해 웹 브라우징이 가능합니다.
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 (기본값)mock-ios-service/)127.0.0.1:9999 (기본값)터미널 1 - 모의 iOS 서비스 시작:
cd mock-ios-service
npm install
npm start
터미널 2 - 모의 모드에서 Windows 프록시 시작:
cd windows-proxy
npm install
npm run mock
브라우저 구성:
127.0.0.1:8080으로 설정터미널 1 - Windows 프록시 시작:
cd windows-proxy
npm install
npm start
iOS 기기:
브라우저 구성:
127.0.0.1:8080으로 설정모든 데이터는 압축된 청크 형식으로 전송됩니다:
[4-byte length header][compressed JSON payload]
// Request
{
id: "uuid", // Unique request ID
method: "GET", // HTTP method
url: "https://...", // Target URL
headers: {}, // HTTP headers
body: "base64...", // Request body (base64)
isConnect: false // HTTPS CONNECT flag
}
// Response
{
id: "uuid", // Matching request ID
statusCode: 200, // HTTP status
headers: {}, // Response headers
body: "base64...", // Response body (base64)
success: true // For CONNECT requests
}
// windows-proxy/config.js
{
proxy: {
host: "127.0.0.1",
port: 8080,
timeout: 30000
},
ble: {
serviceUUID: "a1b2c3d4-...",
// ... other UUIDs
}
}
# Mock mode
MOCK_MODE=true
# Proxy settings
PROXY_HOST=127.0.0.1
PROXY_PORT=8080
# BLE UUIDs
BLE_SERVICE_UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef
# Mock service
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 포트: 8080127.0.0.1 포트: 8080ble_proxy/
├── windows-proxy/ # Windows BLE Central + HTTP Proxy
│ ├── proxy.js # Main proxy server
│ ├── ble-client.js # Real BLE client
│ ├── mock-ble-client.js # Mock BLE client (TCP)
│ ├── config.js # Configuration
│ └── demo.js # Demo script
├── mock-ios-service/ # Mock iOS BLE Peripheral
│ ├── mock-ios.js # Main TCP server
│ ├── http-client.js # HTTP request handler
│ └── demo.js # Demo script
└── ios-app/ # iOS Native App (future)
단위 테스트:
# Test Windows proxy
cd windows-proxy
npm test
# Test mock service
cd mock-ios-service
npm test
통합 테스트:
# Start both services and test with curl
curl -x http://127.0.0.1:8080 https://httpbin.org/ip
디버그 로깅 활성화:
# Windows proxy
NODE_ENV=development npm start
# Mock service
NODE_ENV=development npm start
BLE 디버깅 (Windows):
# Check BLE adapter status
Get-PnpDevice | Where-Object {$_.Name -like "*Bluetooth*"}
# Monitor BLE traffic (requires tools)
# BLE not working
npm run mock # Use mock mode instead
# Port already in use
netstat -ano | findstr :8080
# Dependencies failing
npm run install-build-tools
# Port 9999 in use
netstat -ano | findstr :9999
# Connection refused
# Ensure mock service starts before proxy
# Clear proxy settings
# Check Windows proxy settings
# Disable other VPNs/proxies
⚠️ 이것은 개발/테스트 도구입니다. 보안 영향을 고려하세요:
git checkout -b feature/name)MIT 라이선스 - 자세한 내용은 LICENSE 파일 참조
상태: ✅ 모의 테스트 준비 완료 | 🚧 iOS 앱 개발 중 | 📋 프로덕션 기능 계획됨