내용으로 건너뛰기

시작하기

GitHub

Capgo의 AI-Assisted Setup을 사용하여 플러그인을 설치할 수 있습니다. AI 도구에 Capgo 기능을 추가하려면 다음 명령어를 사용하세요.

터미널 창
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

다음 명령어를 사용하여 다음 프롬프트를 사용하세요.

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-network-diagnostics` plugin in my project.

만약 Manual Setup을 선호한다면, 플러그인을 설치하기 위해 다음 명령어를 실행하고 아래에 플랫폼에 따라 설명된 지침을 따르세요.

터미널 창
npm install @capgo/capacitor-network-diagnostics
npx cap sync
import { NetworkDiagnostics } from '@capgo/capacitor-network-diagnostics';

완전한 진단 보고서 실행

완전한 진단 보고서 섹션

runDiagnostics 사용자가 제한된 네트워크에서 지원 보고서를 수집하기 위한 가장 빠른 방법입니다.

const report = await NetworkDiagnostics.runDiagnostics({
urls: [{ url: 'https://api.example.com/health', method: 'HEAD' }],
ports: [{ host: 'api.example.com', port: 443 }],
websockets: [{ url: 'wss://ws.example.com/socket' }],
download: {
url: 'https://speed.example.com/5mb.bin',
maxBytes: 5 * 1024 * 1024,
},
packetLoss: {
mode: 'tcp',
host: 'api.example.com',
port: 443,
count: 10,
},
});
console.log(report.status.connectionType);
console.log(report.issues);

현재 네트워크 상태 확인

현재 네트워크 상태 확인 섹션
const status = await NetworkDiagnostics.getNetworkStatus();
console.log(status.connected);
console.log(status.connectionType);
console.log(status.internetReachable);
console.log(status.captivePortal);

플랫폼에 따라 정확한 플래그가 달라집니다. Android는 유효한 인터넷 및 캡티브 게이트웨이 상태를 보고할 수 있습니다. iOS는 경로 상태, 인터페이스 유형, 비용이 많이 드는 경로 및 제한된 경로를 보고합니다. Network.framework.

테스트 API 접근성

제목: 테스트 API 접근성
const result = await NetworkDiagnostics.testUrl({
url: 'https://api.example.com/health',
method: 'HEAD',
timeoutMs: 5000,
followRedirects: true,
});
if (!result.reachable) {
console.warn(result.errorCode, result.errorMessage);
}

실제 백엔드에서 사용하는 건강한 엔드포인트를 사용하세요. 브라우저만으로 체크하는 것은 WebView, CORS, 프록시, 또는 캡티브 포털의 동작으로 숨겨질 수 있지만 이 플러그인은 네이티브 네트워킹을 사용합니다.

TCP 포트 테스트

제목: TCP 포트 테스트
const port = await NetworkDiagnostics.testPort({
host: 'api.example.com',
port: 443,
timeoutMs: 3000,
});
console.log(port.open, port.durationMs);

이것은 Wi-Fi 접근 포인트가 일반 브라우징을 허용하면서도 MQTT, 커스텀 게이트웨이, 또는 개인 백엔드에 대한 접근을 차단할 때 유용합니다.

웹소켓 연결 테스트

제목: 웹소켓 연결 테스트
const socket = await NetworkDiagnostics.testWebSocket({
url: 'wss://ws.example.com/socket',
timeoutMs: 5000,
});
console.log(socket.open, socket.statusCode);

프록시 또는 캡티브 포털이 HTTPS 페이지를 허용하지만 웹소켓 업그레이드 요청을 차단할 때 사용하세요.

다운로드 속도 측정

다운로드 속도 측정 섹션
const speed = await NetworkDiagnostics.testDownloadSpeed({
url: 'https://speed.example.com/5mb.bin',
maxBytes: 5 * 1024 * 1024,
timeoutMs: 30000,
});
console.log(speed.mbps);

__CAPGO_KEEP_0__

패킷 손실 추정

패킷 손실 추정 섹션
const loss = await NetworkDiagnostics.testPacketLoss({
mode: 'tcp',
host: 'api.example.com',
port: 443,
count: 10,
timeoutMs: 3000,
intervalMs: 250,
});
console.log(loss.lossPercent);

__CAPGO_KEEP_0__

RAW ICMP ping은 App Store 및 Play Store 앱에서 사용할 수 없습니다. 이 방법은 TCP 또는 HTTP 프로브를 반복하여 애플리케이션 수준의 패킷 손실을 측정합니다.

웹 fallback

웹 fallback 섹션