도큐중계서버

개발자용 기기 간 연결 계층 · P2PConnect

기기와 기기를,
번호 하나로.

P2PConnect는 원격제어 전용 프로그램이 아닙니다. 두 프로그램 사이에 안전한 양방향 통로를 열어 주고, 그 통로로 무엇을 주고받을지는 쓰는 프로그램이 정합니다.

  • 9자리 연결 번호
  • WebRTC 직접 연결
  • 응용 데이터는 서버를 지나지 않음
도큐 도큐원격(DNIRemote)이 첫 소비자입니다.
  1. 호스트를 등록합니다프로그램이 시그널링 서버에 등록하고 연결 번호를 받습니다.
  2. 번호로 접속합니다상대가 번호와 접속 비밀값으로 연결을 요청하면, 서버는 협상만 중계합니다.
  3. 직접 통신합니다두 프로그램 사이에 데이터 채널이 열리고, 그 뒤로 서버는 관여하지 않습니다.

공유기 뒤에 있어도,
찾아서 잇습니다

같은 망이면 내부 주소로, 다른 망이면 STUN으로 공유기 뒤의 상대와 연결합니다. 서버가 발급한 번호는 서버를 다시 켜도 유지됩니다.

  • 같은 망 · 내부 주소
  • 다른 망 · STUN
  • 사무실 · 집 · 이동통신망 실측
직접 연결이 안 될 때의 TURN 자동 중계는 준비 중입니다.

Python과 브라우저,
두 가지 SDK

문자열과 바이너리를 양방향으로 보내고 메시지 경계를 지킵니다. 한 호스트가 여러 접속자와 동시에 연결을 유지하고, 하나가 끊겨도 나머지는 영향을 받지 않습니다.

다른 언어 SDK는 준비 중입니다.
PYTHONPython 클라이언트asyncio·aiortc 기반 패키지. 시그널링이 끊겨도 자동으로 다시 등록하고, 열린 연결은 그대로 둡니다.
BROWSER브라우저 모듈의존성 없는 ES 모듈로 브라우저에서 바로 씁니다.
TRANSPORTWebRTC 데이터 채널문자열·바이너리 양방향, 메시지당 최대 64KiB. 여러 접속자 동시 연결.

서버는 직접,
가볍게 운영합니다

시그널링 서버는 Python 3.10 이상에 의존성 하나로 돌고, Windows 서비스로 상시 실행합니다. 계정도 DB도 없이, 공인 IP와 포트 하나면 됩니다.

  • 의존성 1개
  • Windows 서비스
  • 계정 · DB 없음
  • 관리 페이지 · 상태 확인 주소
관리 페이지에서 대기 호스트 목록·세션 수·연결 기록을 봅니다.

응용 데이터는
서버를 지나지 않습니다

시그널링 서버는 연결 협상만 중계하고 계정·DB가 없습니다. 접속 비밀값과 협상 내용은 로그에 남기지 않습니다.

구간 암호화WebRTC 구간은 DTLS, 서버 연결은 TLS(wss)로 암호화합니다.
인증서 지문 고정서버 연결에서 인증서 지문 고정을 지원합니다.
접속 통제접속 비밀값은 호스트가 검증하고, 서버는 시도 횟수를 제한합니다.
소스를 직접 확인소스가 공개돼 있어 동작을 직접 확인할 수 있습니다.

도큐중계서버의 주요 기능을 소개합니다.

연결 번호로 상대 찾기

서버가 발급한 9자리 번호(또는 26자 ID)로 상대를 찾습니다. 번호는 서버를 다시 켜도 유지됩니다.

직접 연결

가능하면 WebRTC 데이터 채널로 두 프로그램을 직접 잇습니다. 메시지 경계를 지킵니다.

NAT·공유기 통과

같은 망이면 내부 주소로, 다른 망이면 STUN으로 공유기 뒤의 상대와 연결합니다.

여러 접속자 동시 연결

한 호스트가 여러 접속자와 동시에 연결을 유지하고, 하나가 끊겨도 나머지는 영향이 없습니다.

자동 재접속

시그널링이 끊겨도 자동으로 다시 등록하며 이미 열린 연결은 그대로 둡니다(Python 클라이언트).

암호화와 접속 통제

DTLS·TLS 암호화와 인증서 지문 고정. 비밀값은 호스트가 검증하고 서버는 시도 횟수를 제한합니다.

관리 페이지

대기 호스트 목록·세션 수·연결 기록을 보는 관리 페이지와 상태 확인 주소를 둡니다.

가벼운 서버

의존성 하나, 계정·DB 없음. Windows 서비스로 상시 실행합니다.

쓰임새는 자유롭게

원격제어, 파일 전송, 브라우저와 로컬 서비스, 데스크톱·모바일 앱, IoT처럼 양방향 통로가 필요한 곳에.

라이선스와 요금

구분가격이용 범위
비상업 이용무료PolyForm Noncommercial 1.0.0 조건에 따라 비상업 목적으로 이용
상업 이용문의별도 라이선스가 필요합니다. 상업 라이선스 요금은 준비 중입니다.

소스는 공개돼 있지만 오픈소스 라이선스는 아닙니다. 상업 이용 여부가 애매하면 먼저 문의해 주세요.

받기

  • Python 클라이언트 · 브라우저 모듈개발자용 SDK입니다. 배포 방식은 준비 중이며, 지금은 문의로 안내합니다.
    준비 중
  • 시그널링 서버Windows 서비스로 실행합니다. 상업 이용은 별도 라이선스가 필요합니다.
    준비 중

설치 파일 형태의 일반 사용자 제품이 아니라 Python·브라우저 SDK와 서버 소스로 제공합니다. 홈페이지에서의 배포 방식은 준비 중입니다.

사양과 구성

서버Python 3.10 이상, 의존성 1개. Windows 서비스로 상시 실행. 공인 IP와 포트 하나 필요
클라이언트Python(asyncio·aiortc) 패키지 · 브라우저용 ES 모듈(의존성 없음)
전송WebRTC 데이터 채널, 문자열·바이너리 양방향, 메시지당 최대 64KiB
관리대기 호스트 목록·세션 수·연결 기록 관리 페이지와 상태 확인 주소
라이선스PolyForm Noncommercial 1.0.0. 비상업 이용 무료, 상업 이용은 별도 라이선스. 소스 공개(오픈소스 라이선스는 아님)
준비 중직접 연결 실패 시 TURN 자동 중계, 네트워크 변경 후 자동 재연결, 컨테이너 배포, 다른 언어 SDK

버전 히스토리

현재 제공 범위
  • 연결 번호 발급과 상대 찾기, WebRTC 직접 연결
  • Python 클라이언트(자동 재접속) · 브라우저 ES 모듈
  • 여러 접속자 동시 연결
  • 관리 페이지와 상태 확인 주소
준비 중
  • 직접 연결 실패 시 TURN 자동 중계
  • 네트워크 변경 후 자동 재연결
  • 컨테이너 배포
  • 다른 언어 SDK
이전 버전
공개 버전 기록은 홈페이지 배포가 시작되면 이곳에 올립니다.

자주 묻는 질문

원격제어 프로그램인가요?
아닙니다. 두 프로그램 사이에 양방향 통로를 열어 주는 통신 계층이고, 그 통로로 무엇을 주고받을지는 쓰는 프로그램이 정합니다. 도큐 도큐원격이 이 계층을 쓰는 첫 제품입니다.
주고받는 데이터가 서버를 거치나요?
아닙니다. 시그널링 서버는 연결 협상만 중계하고, 연결된 뒤의 응용 데이터는 두 프로그램 사이에서 직접 오갑니다. 접속 비밀값과 협상 내용은 로그에 남기지 않습니다.
회사 제품에 넣어도 되나요?
라이선스는 PolyForm Noncommercial 1.0.0이라 비상업 이용만 무료입니다. 상업 이용은 별도 라이선스가 필요하니 문의해 주세요.
오픈소스인가요?
소스는 공개돼 있어 동작을 직접 확인할 수 있지만, 오픈소스 라이선스는 아닙니다.
직접 연결이 안 되는 망에서는 어떻게 되나요?
같은 망은 내부 주소, 다른 망은 STUN으로 연결합니다. 직접 연결이 실패할 때의 TURN 자동 중계는 준비 중입니다.
Python과 브라우저 말고 다른 언어도 되나요?
지금은 Python 클라이언트와 브라우저용 ES 모듈을 제공합니다. 다른 언어 SDK는 준비 중입니다.

도움말과 약관

도입·기술 문의

쓰려는 용도(비상업·상업), 연결할 프로그램 종류, 서버 운영 환경을 함께 적어 주세요.

문의하기

개발자 문서는 준비 중입니다. 시그널링 서버는 계정·DB가 없고 응용 데이터는 서버를 지나지 않습니다. 라이선스는 PolyForm Noncommercial 1.0.0이며 상업 이용은 별도 계약입니다.