개요
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 으로 가장 쉽게 설치하고 활용
첫 등록 : 2020.09.09
최종 수정 :
단축 주소 : https://igotit.tistory.com/2570
'VisualStudio.C++.C# > 코딩팁,함수활용,단편' 카테고리의 다른 글
MFC. 컴파일 경고 무시 #pragma, 속성설정. (0) | 2020.09.14 |
---|---|
MFC. pch.h precompiled header 사용하지 않음 설정 (0) | 2020.09.13 |
std::function<R(Args...)>::target (0) | 2020.09.08 |
Fixed width integer types C99표준. stdint.h 에 정의 있음. uint8_t, uint64_t 등. (0) | 2020.09.07 |
win API . FindWindow , FindWindowEx (0) | 2020.09.05 |
댓글