개요 

- C# 용 웹소켓 라이브러리. WebSocketSharp 설치방법.

- 웹소켓 클라이언트 C# 코드예. 

- Connect 함수 실행시 발생하는 TLS handshake 오류 해결. 

 

설치방법. 

Visual Studio C# 프로젝트에서 NuGet 패키지에서 검색 WebSocketSharp 에서 보이는 아래 붉은박스 선택하고 버튼 Install 클릭. 

- 버전 : 1.0.1 (현재 2020.12.27 NuGet 으로 배포되는 최신버전임)

 

 

 

 

웹소켓 클라이언트 기본 코딩 

- 아래 코드는 공개되어있는 웹소켓서버(룹백 서버임) 와 접속하여, 클라이언트에서 키보드로 입력한 글자를 송신하면 서버는 글자들을 그대로 다시 클라이언트로 송신하고 클라이언트 화면에 표현되는 방식으로 작동함. 

 

ReadyState 상태 . 

Connecting : 연결 시도중 의미   통신 불가 상태. 

Open : ws.Connect() 실행되어 성공적인 경우이며, Open 상태에서만 정상 통신 가능. 

Closing : 연결 닫히는 중. 

Closed : 연결해제되었음. 

 

 

 

 

 

 

 

상기 코드 실행모습 . 

 

 

 

 

Connect 실행시 발생하는  TLS handshake 오류 해결. 

- 앞의 예제 코드에서의 웹소켓서버인 경우에는 Connect() 함수가 정상적으로 실행되어 연결성공하지만, 접속대상 서버 ( 오류발생하는 웹소켓서버예 ; 암호화폐 거래소 바이빗  )에 따라 오류 나는 경우가 있다. 에러 발생시 보이는 오류 구문을 보면 아래와 같이 TLS handshake 과정에서 문제 발생했음을 알 수 있다. .  

이 문제를 해결하기 위해서는 Connect 실행시 TLS 오류 발생했다면 SSL 프로토콜을 수정하여 다시 접속하는 식으로 구현한다. 

 

아래 코드는 TLS handshake 오류 해결된 코드 이며, 상기 코드와 기본 골격은 동일.  접속 종료 이벤트 핸들러에 TLS 오류시 재접속 코드 추가된 코드이며, 접속서버는 bybit 의 웹소켓 서버로 하고 있다.

 

 

 

 

 

 

websocket-sharp  상세. GitHub

 

 

sta/websocket-sharp

A C# implementation of the WebSocket protocol client and server - sta/websocket-sharp

github.com

 

연관 

 

 

 

WebSocket. 웹소켓.

개요 WebSocket - 웹서버와 브라우저간 지속연결된 TCP 기반 양방향 실시간 통신 가능한 기술 사양. - HTML5 에서 WebSocket 사양이 정의되고 있다. - 표준화된 순수 웹 환경(즉, 추가의 플러그인 프로그램

igotit.tistory.com

 

MS 공식지원 웹소켓 라이브러리. 

 

C#. MS 공식지원 WebSocket 라이브러리.

개요 - MS 공식지원 websocket 라이브러리. - .net 에서 WebSocket 지원 함. 상세보기 (아래 링크) ASP.NET Core에서 WebSocket 지원 ASP.NET Core에서 Websocket을 시작하는 방법을 알아봅니다. docs.microsoft.c..

igotit.tistory.com

 

 

 


첫 등록 : 2020.12.26

최종 수정 : 

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

 


 

Posted by 리치굿맨

댓글을 달아 주세요

  1. 잘보고갑니다

    2020.12.27 12:31 신고 [ ADDR : EDIT/ DEL : REPLY ]