
BLEベースのHTTPプロキシシステムで、ブラウザのトラフィックをiOSデバイス経由でルーティングします。HTTP/HTTPS、データ圧縮、およびハードウェアなしでテストするためのモックモードをサポートしています。
Bluetooth Low Energy (BLE) ベースの HTTP プロキシシステムで、Webブラウザのトラフィックを iOS デバイス経由でルーティングします。これにより、BLE をトランスポート層として使用し、iOS デバイスのインターネット接続を通じて Web ブラウジングが可能になります。
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バイト長ヘッダー][圧縮済みJSONペイロード]
// Request
{
id: "uuid", // 一意のリクエストID
method: "GET", // HTTP メソッド
url: "https://...", // ターゲットURL
headers: {}, // HTTP ヘッダー
body: "base64...", // リクエストボディ (base64)
isConnect: false // HTTPS CONNECT フラグ
}
// Response
{
id: "uuid", // 対応するリクエストID
statusCode: 200, // HTTP ステータス
headers: {}, // レスポンスヘッダー
body: "base64...", // レスポンスボディ (base64)
success: true // CONNECT リクエスト用
}
// windows-proxy/config.js
{
proxy: {
host: "127.0.0.1",
port: 8080,
timeout: 30000
},
ble: {
serviceUUID: "a1b2c3d4-...",
// ... その他のUUID
}
}
# モックモード
MOCK_MODE=true
# プロキシ設定
PROXY_HOST=127.0.0.1
PROXY_PORT=8080
# BLE UUID
BLE_SERVICE_UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef
# モックサービス
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.js # メインプロキシサーバー
│ ├── ble-client.js # 実際の BLE クライアント
│ ├── mock-ble-client.js # モック BLE クライアント (TCP)
│ ├── config.js # 設定
│ └── demo.js # デモスクリプト
├── mock-ios-service/ # モック iOS BLE Peripheral
│ ├── mock-ios.js # メイン TCP サーバー
│ ├── http-client.js # HTTP リクエストハンドラ
│ └── demo.js # デモスクリプト
└── ios-app/ # iOS ネイティブアプリ (将来)
単体テスト:
# Windows プロキシのテスト
cd windows-proxy
npm test
# モックサービスのテスト
cd mock-ios-service
npm test
結合テスト:
# 両方のサービスを起動し、curl でテスト
curl -x http://127.0.0.1:8080 https://httpbin.org/ip
デバッグログを有効にする:
# Windows プロキシ
NODE_ENV=development npm start
# モックサービス
NODE_ENV=development npm start
BLE デバッグ (Windows):
# BLE アダプターの状態を確認
Get-PnpDevice | Where-Object {$_.Name -like "*Bluetooth*"}
# BLE トラフィックの監視 (ツールが必要)
# BLE が動作しない場合
npm run mock # 代わりにモックモードを使用
# ポートが既に使用中の場合
netstat -ano | findstr :8080
# 依存関係が失敗する場合
npm run install-build-tools
# ポート 9999 が使用中の場合
netstat -ano | findstr :9999
# 接続が拒否された場合
# プロキシを起動する前にモックサービスを起動していることを確認
# プロキシ設定をクリア
# Windows のプロキシ設定を確認
# 他のVPN/プロキシを無効にする
⚠️ これは開発/テストツールです。セキュリティへの影響を考慮してください:
git checkout -b feature/name)MIT ライセンス - 詳細は LICENSE ファイルを参照してください。
ステータス: ✅ モックテスト準備完了 | 🚧 iOS アプリ開発中 | 📋 プロダクション機能計画済み