MFC based socket.io-client-cpp 모듈
- Develop/C,C++,MFC,API,Qt
- 2020. 12. 18.
반응형
728x90
반응형
Introduction
결과물만 업로드 하는 포스팅입니다.
이전 포스팅에 이어 socket.io-client-cpp 를 이용하여 MFC에 추가작업을 진행하였습니다. 물론, 한글 인코딩 문제와 여러가지 문제들을 해결을 완료하였습니다. 사용방법은 nodejs 기반에 Web서버가 있고, 아래와 같이 message를 구현해주시면 됩니다.
#node.js 기반 Web서버 예제 (node.js 관련 도서 책 참고)
// 'message' 이벤트를 받았을 때의 처리
socket.on('message', function(message) {
console.log('message 이벤트를 받았습니다.');
console.dir(message);
if (message.recepient =='ALL') {
// 나를 포함한 모든 클라이언트에게 메시지 전달
console.dir('나를 포함한 모든 클라이언트에게 message 이벤트를 전송합니다.')
io.sockets.emit('message', message);
} else {
// command 속성으로 일대일 채팅과 그룹채팅 구분
if (message.command == 'chat') {
// 일대일 채팅 대상에게 메시지 전달
if (login_ids[message.recepient]) {
io.sockets.connected[login_ids[message.recepient]].emit('message', message);
// 응답 메시지 전송
sendResponse(socket, 'message', '200', '메시지를 전송했습니다.');
} else {
// 응답 메시지 전송
sendResponse(socket, 'login', '404', '상대방의 로그인 ID를 찾을 수 없습니다.');
}
} else if (message.command == 'groupchat') {
// 방에 들어있는 모든 사용자에게 메시지 전달
io.sockets.in(message.recepient).emit('message', message);
// 응답 메시지 전송
sendResponse(socket, 'message', '200', '방 [' + message.recepient + ']의 모든 사용자들에게 메시지를 전송했습니다.');
}
}
});
결과
-
Download SocketIOClient R.101.zip
저는 로컬Nas서버를 돌리고 있기때문에 서버구축 후, 웹으로 바로 접속하였습니다. : ) 한글 전송도 문제 없고, web이랑 전송도 잘되고 말이죠. 또한 iOS와 채팅작업도 끝냈기때문에 이제 콘텐츠만 올리면 되네요
오늘도 조금씩 작업 하고 블로그에 업로드 합니다.
Error
MFC 기반에서 빌드를 하게 될 경우, 아래와 같은 오류가 발생하게 됩니다. 이런 경우, 오류를 찾아 수정을 하면서 바로바로 메모를 해두고 있습니다. 양식은 지저분하더라도, 알아보기에만 적합하면 될 것 같아 그대로 남겨두고 갑니다.
Severity Code Description Project File Line Suppression State
Error LNK2001 unresolved external symbol "public: __cdecl boost::random::random_device::~random_device(void)" (??1random_device@random@boost@@QEAA@XZ) SocketIOClient D:\Sources\NasGitLab\mfcdialogsocketio\SocketIOClient\SocketIOClient\sio_client_impl.obj 1
이런 오류가 발생할 경우, 아래와 같이 수정하면 됩니다.
sio_client_impl.h
#include <cstdint>
#ifdef _WIN32
#define _WEBSOCKETPP_CPP11_THREAD_
#define BOOST_ALL_NO_LIB
#define _WEBSOCKETPP_CPP11_RANDOM_DEVICE_ // <-- 주석해제
#define _WEBSOCKETPP_NO_CPP11_FUNCTIONAL_
#define INTIALIZER(__TYPE__)
#else
#define _WEBSOCKETPP_CPP11_STL_ 1
#define INTIALIZER(__TYPE__) (__TYPE__)
#endif
728x90
반응형
'Develop > C,C++,MFC,API,Qt' 카테고리의 다른 글
Visual Studio 2019 MFC 추가하기 (0) | 2021.08.19 |
---|---|
MFC Command line arguments 받기 (0) | 2021.08.18 |
MFC vector<struct> 정렬 (0) | 2020.12.23 |
Visual Studio C++ 32bit / 64bit Debug/Release 빌드 경로 설정 (0) | 2020.12.22 |
Visual Studio 정적(Static)/동적(Dynamic) 라이브러리 만들기 (0) | 2020.12.21 |
MFC에서 콘솔 디버깅 하기 (0) | 2020.12.16 |
MFC Dialog 재활용 방법 (0) | 2020.12.15 |
MFC Tooltip 출력하기 (0) | 2020.12.13 |
3자리 마다 콤마 추가(for 용량 체크) (0) | 2020.12.12 |
Jpg Image Exif 출력하기 (0) | 2020.12.08 |