본문으로 건너뛰기

구현 예제

언어별 Socket.IO 클라이언트 예제

각 프로그래밍 언어별 Socket.IO 클라이언트 구현 예제입니다. 모든 예제는 소켓 연결, 인증, 데이터 수신 및 압축 해제 과정을 포함하고 있습니다.

Node.js 구현 예제

필요한 라이브러리

예제 코드

const io = require("socket.io-client");
const { uncompressSync } = require("snappy");

// 소켓 연결 설정
const socket = io("https://socket.ssapi.kr", {
transports: ["websocket"],
timeout: 5000,
});

// 소켓 연결 성공 시 이벤트
socket.on("connect", () => {
console.log("소켓 연결 성공");
socket.emit("login", "<API KEY 입력>");
});

// 소켓 연결 해제 시 이벤트
socket.on("disconnect", (reason) => {
console.error("소켓 연결 끊김", reason);
});

// 채팅 메시지 수신 및 압축 해제
socket.on("chat", (compressedData) => {
try {
const decompressedData = uncompressSync(compressedData);
const data = JSON.parse(decompressedData.toString());
console.log("수신된 압축 해제 메시지", data);
} catch (error) {
console.error("메시지 압축 해제 중 오류:", error);
}
});

// 후원 데이터 수신 및 압축 해제
socket.on("donation", (compressedData) => {
try {
const decompressedData = uncompressSync(compressedData);
const data = JSON.parse(decompressedData.toString());
console.log("수신된 압축 해제 후원 데이터", data);
} catch (error) {
console.error("후원 데이터 압축 해제 중 오류:", error);
}
});

// 1분 간격으로 ping 전송
let socket_clone = socket.clone();
setInterval(() => {
socket_clone.emit("ping");
}, 60000);

예제는 기본적인 구현 방법을 보여줍니다. 프로덕션 환경에서는 각종 예외 상황에 대한 대응이나 로그 기록 등 필요한 기능을 구현하시기 바랍니다.