니꼴라오
3월 18, 2022, 5:36오전
1
저희 쪽에서 카드 태깅 시 해당 정보(패킷)을 읽어서 DB에 저장합니다.
그리고 그 데이터를 중앙 서버 쪽으로 매시간(1~10초 정도)마다 동기화 위해 데이터를 보냅니다.
JSon으로 만들어서요.
그리고 해당 중앙 서버의 웹서버에서 받아 DB에 Insert 합니다.
그런데 이 중앙 서버 (웹)에서 저희 Console 서버로 데이터를 보낼 때 어떤 방식으로 보내게 되나요?
당연히 JSON으로 해야 하는데 웹은 TCP 방식이 안되잖아요? (잘 몰라요 ㅠㅠ) Http로 보내는 방법은 없나요? URL/Method/… 등등으로 보내면 Console 서버에서 어떻게 받아야 할지 궁금합니다.
(이전 글 이어서…)
Console 서버에서 HttpWebRequest로 JSON 값을 URL (웹)에 보내어
값을 받아옵니다.
이게 HttpWebRequest 원리더군요…
그런데 제가 하고 싶은 것은 웹에서 데이터를 JSON 이든 String 이든 던진 값을
Console에서 받아보고 싶은 건데요 웹은 URL 주소가 있으니 지정된 위치로 보낼 수 있는데
웹에서 Console으로는 데이터를 어떻게 보내야 하는지 몰라서 질문드렸습니다.
같은 Console끼리는 TCP 소켓 방식으로 송수신이 가능한데 웹에서 Console(앱, 기타 등등)으로는
데이터를 어떻게 보내는지 몰라서요.
1개의 좋아요
김청호
3월 18, 2022, 5:44오전
2
socket.io로 그런 시스템을 구현해본 적 있습니다. 다른 방법이 더 있을 수도 있겠지만 일단 이게 답 중 하나가 될 수 있을 거 같네요.
2개의 좋아요
콘솔이 그냥 응용프로그램 이라고 간주하고 답변을 드리자면
콘솔에서도 마찬가지로 웹 서버가 될 수 있도록 HttpListener를 이용해서 웹 요청을 받을 수 있습니다.
HttpListener 클래스 (System.Net) | Microsoft Docs
HttpListener를 사용해서 웹에서 동일하게 해당 콘솔로 Url형식으로 요청하는 방법이 있고
콘솔에서 웹소켓 서버를 구현해서 웹 에서 해당 웹소켓에 접속시켜 실시간으로 데이터를 처리하는 방법도 있습니다.
2개의 좋아요
rkttu
3월 18, 2022, 5:48오전
4
청호님의 말씀처럼 SignalR을 이용하여 클라이언트가 서버로 연결을 먼저 맺은 상태에서 클라이언트와 서버가 실시간으로 통신하도록 구현하는 방법을 사용할 수 있습니다.
다만 지금 개발하는 서버 애플리케이션이 닷넷 프레임워크 기반인 경우이거나, 닷넷 코어를 사용하지만 Kestrel을 사용하지 않고 IIS를 프론트엔드 혹은 IIS ARR 등의 로드 밸런서로 배치한 경우에는 반드시 웹 소켓 프로토콜을 지원하는 최신 버전의 윈도우 서버 OS (적어도 윈도우 서버 2019 이상)를 사용해야만 연결 품질에 문제가 발생하지 않습니다.
SignalR에 관련한 내용은 Real-time ASP.NET with SignalR | .NET 에서 살펴보실 수 있습니다.
4개의 좋아요
이전글에 대댓으로 달 내용을 따로 글로 적으셨으면
이전글은 삭제를 하는것이 맞지 않을까요?