C++기반의socket.ioclientIXWebSocket기반의 Socket.IO 클라이언트 구현체 제공
Node.js기반의socket.ioserver예제
ix/: C++로 작성된 Socket.IO 클라이언트 구현 및 관련 소스 코드main.cpp: 클라이언트 실행 예제SioClientBase.hpp,SioClientV2.hpp,SioClientV4.hpp: Socket.IO 클라이언트 구현체CurlGlobal.hpp,WinSockInit.hpp: 네트워크 초기화 관련 유틸리티CMakeLists.txt,CMakePresets.json: CMake 빌드 설정 파일
sio2/: Node.js 기반 Socket.IO v2 서버 예제server2.js: Socket.IO v2 서버 코드package.json: 의존성 및 실행 스크립트
sio3/: Node.js 기반 Socket.IO v3/v4 서버 예제server3.js: Socket.IO v3/v4 서버 코드package.json: 의존성 및 실행 스크립트
- 다양한 버전의 Socket.IO 서버와의 호환성 테스트 가능
- C++ 클라이언트와 Node.js 서버 예제 코드 제공
- CMake를 이용한 손쉬운 빌드 환경
- (1) CMake를 이용해 빌드
cd ix cmake -B build cmake --build build - (2) 실행 파일을 통해 클라이언트 실행
- vcpkg 설치 및 환경설정
- vcpkg로 패키지 설치:
vcpkg install curl spdlog nlohmann-json ixwebsocket
- CMake 빌드 시 vcpkg toolchain 파일 지정:
cmake -B build -DCMAKE_TOOLCHAIN_FILE="<vcpkg-root>/scripts/buildsystems/vcpkg.cmake" cmake --build build<vcpkg-root>는 vcpkg가 설치된 경로로 교체
- Debian/Ubuntu (apt):
sudo apt update sudo apt install libcurl4-openssl-dev libspdlog-dev nlohmann-json3-dev libixwebsocket-dev
- Fedora (dnf):
sudo dnf install libcurl-devel spdlog-devel nlohmann-json-devel
- CentOS/RHEL (yum):
sudo yum install libcurl-devel spdlog-devel nlohmann-json-devel
Rocky Linux 등 일부 RHEL 계열 배포판에는 ixwebsocket-devel 패키지가 제공되지 않습니다.
이 경우, 소스에서 직접 빌드해야 합니다:
- 의존성 설치
sudo yum install libcurl-devel spdlog-devel nlohmann-json-devel
- IXWebSocket 소스 다운로드 및 빌드
git clone https://github.com/machinezone/IXWebSocket.git cd IXWebSocket mkdir build && cd build cmake .. make -j sudo make install
- 또는 특정한 릴리즈 버전을 다운로드 받아서 설치하여도 된다. https://github.com/machinezone/IXWebSocket/releases
- CMake 빌드 시 IXWebSocket이 설치된 경로가 자동으로 탐지되지 않으면,
CMAKE_PREFIX_PATH에 설치 경로를 추가:cmake -B build -DCMAKE_PREFIX_PATH="/usr/local"
- CMake에서 각 라이브러리는
find_package로 자동 탐지됩니다. - vcpkg/패키지 매니저를 사용하면 별도 소스 빌드 없이 간편하게 설치할 수 있습니다.
- (1) 각 폴더(
sio2,sio3)에서 의존성 설치npm install
- (2) 서버 실행
node server2.js # 또는 node server3.js