안녕하세요. c#으로 웹소켓을 통해 데이터를 주고받도록 만들고있습니다.
클라이언트는 c# winform 과 jsp , 서버는 윈도우서비스(로컬)에 두고있습니다.
웹소켓을 이용한 프로그램의 기본 동작은 다음과 같습니다.
- 부팅 시 배치파일을 시작프로그램에 넣어 윈도우서비스를 실행시킨다(서버)
- 웹에서 사이트 접속시 웹소켓서버에 연결하고 실행시킬 프로그램의 버전체크(레지스트리)를 한다.
- 버전체크에 성공하면 웹에서 프로그램을 실행시킨다.
- 실행시킨 프로그램에서 저장이나 닫기 등의 행위 시 send를 통해 서버에 데이터를 보내고
서버가 웹클라이언트로 전달하여 웹화면을 갱신한다.
websocket-sharp로 기능 구현은 성공적으로 마쳤는데 예외처리를 언제 어떻게 해야할지 감이 안잡혀서
질문을 올립니다. 예제들도 기능구현만 있고 예외처리는 없더군요.
생각해본 예외처리의 경우는 다음과 같습니다.
-
서버를 localhost에 두고 포트는 잘 안쓰이는 5~6만번대를 사용하려고 하는데
혹시 포트가 겹쳐서 오류가 날 경우 포트에 +1을 해서 다시 서버를 여는 방식으로 해야할까요? -
웹이나 winform 클라이언트에서 웹소켓서버 접속이 안되거나 갑자기 연결이 끊겼을 경우 웹소켓의 onError를 통해 처리하려하는데 괜찮을까요?
-
보통 데이터를 교환할때만 연결하고 끝나면 끊어버리는지 아니면 계속 연결상태로 두는지 궁금합니다. 계속 연결해둔채 장시간이 지나면 문제가 생길지도 모를거 같아서 질문합니다.
-
제가 떠올리지 못한 부분이 있다면 말씀해주시면 감사하겠습니다.
웹에서 ocx 뗀다고 새로 방법을 구상하고있는데 초급이 하기엔 많이 어렵네요.
질문외에 기본 동작 방식이나 비효율적이다 생각하시는 부분들도 많은 조언 부탁드립니다. 감사합니다!