TsgcWebSocketClient는 sgcWebSockets 런타임 클라이언트를 감싼 .NET 래퍼예요. TsgcWebSocketClient_base에서 핵심 WebSocket 기능을 모두 상속하며, .NET 애플리케이션이 WebSocket을 통해 연결, 전송, 수신할 수 있도록 컴포넌트 스타일 API를 제공해요.
주요 속성
- Host & Port – 대상 서버 엔드포인트예요.
- Options.Parameters – WebSocket 핸드셰이크의 URL 경로 또는 쿼리 매개변수예요.
- TLS & TLSOptions – TLS를 활성화하고 프로토콜 버전/IO 핸들러를 선택해요.
- Specifications.RFC6455 – RFC6455 WebSocket 프레이밍 호환성을 켜고 끌 수 있어요.
- Proxy – HTTP 프록시 설정이에요 (Enabled, Username, Password, Host, Port).
- Extensions.PerMessage_Deflate.Enabled – 메시지별 압축을 활성화해요.
- Authentication – 필요한 경우 기본 인증 자격 증명이에요.
- Active –
true로 설정하면 연결,false로 설정하면 연결을 해제해요.
이벤트
연결 라이프사이클과 데이터에 반응하도록 이벤트 핸들러를 등록해요.
- OnConnect – 연결이 성공적으로 이루어진 후 발생해요. 샘플 핸들러는 피어 IP를 로깅해요.
- OnDisconnect – 연결이 닫힐 때 발생하며 종료 코드를 제공해요.
- OnMessage – 서버로부터 텍스트 메시지를 수신해요.
- OnError – 프로토콜이나 소켓 오류를 보고해요.
- OnException – 컴포넌트 내부에서 발생한 예기치 못한 예외를 노출해요.
예제
using esegece.sgcWebSockets;
var client = new TsgcWebSocketClient();
client.OnConnect += OnConnectEvent;
client.OnDisconnect += OnDisconnectEvent;
client.OnException += OnExceptionEvent;
client.OnError += OnErrorEvent;
client.OnMessage += OnMessageEvent;
client.Host = "www.esegece.com";
client.Port = 2052;
client.Options.Parameters = "/";
client.TLS = false;
client.Specifications.RFC6455 = true;
client.Active = true;
// Sending data once connected
client.WriteData("Hello WebSocket!");
이 코드는 데모 사용법을 그대로 보여줘요. 연결 전에 이벤트가 연결되고, 주요 속성(호스트, 포트, TLS, RFC6455 등)이 구성되며, Active를 true로 설정하면 연결이 시작돼요.
위에 정의된 이벤트 핸들러를 통해 클라이언트는 연결을 로깅하고, 메시지를 수신하며, WriteData로 데이터를 전송할 수 있어요.
