본문으로 건너뛰기

5분 빠른 시작

이 튜토리얼은 Node.js 22.16.0 이상 환경에서 로컬 서버와 두 클라이언트 사이의 메시지 전달을 확인합니다. 터미널 세 개가 필요합니다.

서버를 먼저 실행하고 수신자가 hello#message를 구독한 뒤 송신자의 메시지를 서버를 통해 전달하는 구조

목표에 맞는 순서를 찾으려면 시작 경로를 이용하세요.

1. 프로젝트 준비​

mkdir iosignal-hello
cd iosignal-hello
npm init -y
npm install iosignal

아래 파일은 .mjs 확장자를 사용하므로 package.json을 수정할 필요가 없습니다.

2. 서버 실행​

server.mjs:

import { Server } from 'iosignal';

const server = new Server({ port: 7777 });
server.on('ready', () => console.log('서버 준비: ws://localhost:7777'));

첫 번째 터미널에서 node server.mjs를 실행하고 그대로 둡니다.

3. 수신자 실행​

receiver.mjs:

import { IO } from 'iosignal';

const io = new IO('ws://localhost:7777');
io.listen('hello#message', (tag, message) => {
console.log(tag, message);
});
io.on('ready', () => console.log('수신 준비:', io.cid));
io.on('error', console.error);

두 번째 터미널에서 node receiver.mjs를 실행합니다. ready가 표시될 때까지 기다립니다. listen은 채널과 핸들러를 등록하며, 연결이 준비되면 구독합니다.

4. 송신자 실행​

sender.mjs:

import { IO } from 'iosignal';

const io = new IO('ws://localhost:7777');
io.on('ready', () => {
io.signal('hello#message', '안녕하세요, IOSignal!');
console.log('전송 완료');
});
io.on('error', console.error);

세 번째 터미널에서 node sender.mjs를 실행합니다. 수신 터미널에 hello#message와 메시지가 출력되면 성공입니다. hello는 채널, message는 토픽입니다. 실행 중인 클라이언트와 서버를 종료하려면 각 터미널에서 Ctrl+C를 누르세요.

코드 없이 CLI로 해보기​

같은 흐름을 iosignal-cli로 코드 없이 확인할 수 있습니다. 위 Node.js 서버를 종료한 뒤 터미널 세 개를 사용합니다.

npm install -g iosignal-cli
io-server -l 7777

첫 터미널을 그대로 둡니다. 두 번째와 세 번째 터미널에서 각각 클라이언트를 연결하고 ready와 CID가 표시될 때까지 기다립니다.

io-client -c ws://localhost:7777

채널로 보내기: 두 번째 클라이언트에서 listen demo, 세 번째 클라이언트에서 signal demo hello를 입력합니다. 수신 측에 < -message: demo hello가 출력됩니다.

CID로 직접 보내기: 수신할 클라이언트에서 id를 입력해 CID를 확인하고, 송신 측에서 signal 실제CID@ hello를 입력합니다. 익명 CID의 ?도 포함합니다. 직접 수신에는 listen이 필요하지 않습니다.

클라이언트는 exit, quit 또는 Ctrl+C로 종료합니다. 명령 전체는 CLI 클라이언트와 CLI 서버 옵션을 참고하세요. Arduino를 연결하려면 서버에 -L 8888을 추가하고 보드의 TCP 포트를 맞춥니다.

다음 단계​