본문으로 건너뛰기

CLI 로 실행하는 IO client

iosignal-cli는 WebSocket 또는 CongSocket(TCP)으로 연결하는 대화형 클라이언트를 제공합니다.

설치​

Node.js 22.16.0 이상이 필요합니다. 전역 설치 디렉터리에 쓰기 권한이 있어야 합니다.

npm install -g iosignal-cli

시작 옵션과 연결​

io-client, io, iosignal-cli는 같은 클라이언트를 실행합니다.

io-client # ws://localhost:7777
io-client -c # 공식 서버 wss://io.iosignal.net/ws
io-client -c ws://localhost:7777
io-client -c localhost:7777 # ws:// 생략 가능
io-client -c cong://localhost:8888
io-client -c -j demo,alerts # 공식 서버에 연결하고 구독
io-client -h # 시작 옵션과 대화형 명령 도움말
io-client -V # CLI 및 IOSignal 버전

로컬 서버는 별도 터미널에서 io-server -l 7777로 먼저 실행합니다. -c를 생략하면 로컬 서버에 접속하고, -c만 입력하면 공식 서버로 접속합니다.

옵션설명
-c, --connect [url]ws://, wss://, cong:// 주소
-i, --id <id>인증 ID; --key와 함께 사용
-k, --key <key>인증 키; --id와 함께 사용
-a, --auth-idKey <id.key>ID와 키를 한 인자로 지정
-j, --join-channel <tags>시작 시 구독할 태그; 여러 태그는 쉼표로 구분
--timestamps대화형 로그에 시각 표시
-V, --version / -h, --help버전 / 도움말

클라이언트에는 --timeout 옵션이 없습니다. --id와 --key가 모두 주어지면 --auth-idKey보다 우선합니다.

io-client -i uno -k uno-key
io-client -a uno.uno-key

연결되면 ready: cid: ...가 표시되며 id로 현재 연결 상태를 확인할 수 있습니다.

구독과 발행​

두 클라이언트를 실행하고 첫 번째에서 sub demo, 두 번째에서 pub demo hello world를 입력합니다. 첫 번째 클라이언트에는 다음과 같은 수신 내용이 표시됩니다.

< -message: demo hello world

listen과 join은 subscribe의 별칭입니다. 공통 수신 핸들러로 출력하며 SDK의 io.listen(tag, handler)처럼 사용자 핸들러를 등록하지 않습니다. 구독은 재접속 시 복원되며 unsub로 제거합니다.

대화형 명령​

실행 중 help로 전체 명령을 볼 수 있습니다. 명령은 대소문자를 구분하고 앞에 점(.)을 붙이지 않습니다. 인자는 공백으로 나누며 따옴표나 JSON을 해석하지 않습니다.

명령동작
help전체 대화형 명령과 사용상 주의 표시
sub <tag> / subscribe / listen / join구독, 여러 태그는 쉼표로 구분
unsub [tag]지정 태그 구독 취소, 생략하면 전체 취소
pub <tag> [args...] / publish메시지 발행
sig <tag> [args...] / signal신호 전송
sig_bin <tag> <bytes>0으로 채운 바이너리 전송, 0~1048576바이트; 서버 quota는 별도 적용
call <target> <command> [args...]서비스 호출
sudo <command> [args...]sudo 서비스 호출; admin 역할 인증 정보로 auth/login한 연결 필요
auth <id> <key> / login <id> <key>자동 로그인용 인증 설정 / 서버 인증 challenge를 이용한 로그인 시도; 단일 id.key 인자도 가능
hide / show수신 message 및 CID 메시지 숨김 / 표시; 제어·상태 메시지는 유지
id / ch / quota현재 연결, 구독, quota 조회
ping [cid] / pong / pping <cid>서버 ping·pong / 상대 CID로 ping
echo [text] / iam [name]echo 요청 / 별명 조회·설정; text와 name은 한 토큰
encNo / encYes / encAuto / encMode암호화 모드 변경 / 조회
close / open [url] / connect [url]연결 닫기 / 재연결; close 후 자동 재접속할 수 있음
quit / exit종료
  • open은 시작 때의 전송 방식을 유지합니다. WS/TCP를 바꾸려면 다시 실행하고, CongSocket은 cong://host:port 전체 주소를 씁니다.
  • 클라이언트는 exit, quit, Ctrl+C로, 서버는 Ctrl+C로 종료합니다.
  • echo와 일반 상태 출력은 TTY 터미널에서만 보입니다. 객체·바이너리·여러 인자도 모두 표시하며, 잘못된 입력은 오류만 출력하고 계속 실행됩니다.

5분 빠른 시작의 CLI 실습에서 멀티캐스트와 유니캐스트 예제를 확인할 수 있습니다.