본문 바로가기
VisualStudio.C++.C#/코딩팁,함수활용,단편

Visual C++ 2019 . WebSocket 구현 골격. cpprestsdk 기반.

by i.got.it 2020. 9. 9.

개요 

Visual C++ 2019 에서 웹소켓 구현하기 위한 라이브러리로 4종(  cpprestsdk , libwebsocket, websocket++ , boost websocket) 정도의 후보가 있다. 

 

websocket ++ : www.zaphoyd.com/projects/websocketpp/

boost의  beast::websocket : www.boost.org/doc/libs/1_70_0/libs/beast/doc/html/beast/using_websocket.html

예제 : www.boost.org/doc/libs/1_70_0/libs/beast/doc/html/beast/quick_start/websocket_client.html

stackoverflow.com/questions/9528811/websocket-client-in-c - 이해 쉬움 

 

본 글에서는 cpprestsdk 기반 구현하기위하여 Visual C++ 2019 에서  cpprestsdk 라이브러리를 사용하기 위한 설정(설치) 법 정리하고, Visual C++ 2019  프로젝트 에서 웹소켓 구현하는  코드 골격 정리. 

- libsebsocket 도 시도해보았으나, 설치 과정이 극도로 지저분하고 지속가능한 라이브러리가 될 수 없다고 판단했음.  

 

cpprestsdk 설치 방법. - NuGet 으로 설치함. 

cpprestsdk 설치방법은 vcpkg 를 이용하는 방식과 Visual Studio 에서 제공되는 NuGet 으로 하는 방법 가능하며 2가지 방법 모두 초간단 설치가 이뤄진다. 그런데 2가지 방식 모두 시험해본 결과 vcpkg 로 cpprestsdk 를 설치한 경우엔 종속 라이브리로 boost-asio 도 추가로 설치해야하고, 더 심각한 것은 프로젝트 컴파일  오류(아래 그림)가 생겨 사용이 불가하였다. 반면 NuGet 으로 설치한 경우엔 컴파일 오류없고 정상동작 가능하였다. 참고 : 현재(2020.09.09)시점 vcpkg 로 설치되는 cpprestsdk 의 버전은 2.10.16 이고 NuGet 으로 설치되는 cpprestsdk 의 버전은 2.10.15 임. 

 

NuGet 으로 cpprestsdk 설치방법.

- NuGet 은 프로젝트 단위로 라이브러리를 설치하는 기능이기 때문에 작업할 프로젝트를 오픈한 상태에서 메뉴 -> Tools -> NuGetPackage Manager -> Manage NuGet Package for Solution.. 클릭하여 뜬 창(아래그림)에서 이뤄진다. 

Browse 에서 검색창에 cpprestsdk 를 치면 여러가지가보이는데 VC++2019 용은 cpprestsdk.v142 이다( v141 은 VC++2017 용이라서 2019 에설치하면 안됨. ) v142 를 선택하고 설치할 프로젝트를 선택하여 버튼 install 클릭하면 바로 설치되고 cpprestsdk 즉시 사용가능한 상태가 된다. 

 

 

VC++ 2019 프로젝트에서 WebSocket 구현 코딩. 

- 콘솔 프로젝트에서 아래 코드 작성하면 즉시 WebSocket 연결, 해제 기능 확인가능. 

- 주소로 기록한 곳은 웹소켓 시험 가능한 사이트임. 

 

 

 

#include <iostream>
#include <cpprest/ws_client.h> 

using namespace web;
using namespace web::websockets::client;

int main()
{
    std::cout << " WebSocket  using cpprestsdk !\n";

    websocket_client  client; 
  
    // WebSocket 연결. 
    client.connect(U("wss://echo.websocket.org")).then([]() 
                    { std::cout << " WebSocket connected ! \n"; } 
                  ); 


    Sleep(3000); // 대기


    // 웹소켓 연결 종료.
    client.close().then([]() { std::cout << " WebSocket closed ! \n"; });

}

 

 

 

 

연관 

 

 

VC++ 2017 에서 C++ REST SDK, OpenSSL, libCurl 3개 모두 Nuget 으로 가장 쉽게 설치하고 활용 

 

 

Visual C++. C++ REST SDK. OpenSSL. libCurl 설치하기. - 쉽게.

개요. - Visual C++ 에서 제공되는 nuget 툴을 이용하면 Visual C++ 에서 즉시 사용가능한, C++ REST SDK, OpenSSL, libCurl 모두 5분안에 설치 완료되어 간편한 설치과정으로 즉시 구현작업 가능하다. - Visual C..

igotit.tistory.com

 

 

 

 

 

C++ REST SDK (코드명 Casablanca) 개요.

C++ REST SDK REST 서비스와 상호 작용하기 위한 최신 플랫폼 간 비동기 API를 제공. - 개발 배포 : 마이크로 소프트 JSON 문서 구문 분석 및 serialization에 대한 지원이 기본 제공되는 HTTP 서버에 대해 RES

igotit.tistory.com

 

 

 

 


첫 등록 : 2020.09.09

최종 수정 : 

단축 주소 : https://igotit.tistory.com/2570


 

 

댓글



 

비트코인




암호화폐       외환/나스닥/골드       암호화폐/외환/나스닥/골드 암호화폐/외환/나스닥/골드   암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)     롤오버 이자 없는 스왑프리계좌
( 스왑프리 암호화폐도 거래 가능 )    
MT4, MT5 , cTrader 모두 지원     FTMO 계좌 매매운용. MT4,MT5