Delphi WebSocket 클라이언트

TsgcWebSocketClient — SSL/TLS, 프록시 지원, 메시지 압축, 자동 재연결을 갖춘 Delphi 및 C++ Builder용 풀 기능 WebSocket 클라이언트 컴포넌트.

TsgcWebSocketClient

클라이언트 WebSocket 컴포넌트 — RFC 6455 WebSocket 서버에 연결해 텍스트 및 바이너리 메시지를 교환해요.

컴포넌트 클래스

TsgcWebSocketClient

프로토콜

WebSocket — RFC 6455

플랫폼

Windows, macOS, Linux, iOS, Android

에디션

Standard / Professional / Enterprise

컴포넌트 배치, 몇 가지 속성 설정, 실행

Host, Port, TLS를 설정하고 OnMessage를 처리한 다음 연결을 활성화하세요. 핸드셰이크, 프레이밍, ping/pong은 자동으로 관리돼요.

uses
  sgcWebSocket_Client, sgcWebSocket_Classes;

var
  oClient: TsgcWebSocketClient;
begin
  oClient := TsgcWebSocketClient.Create(nil);
  oClient.Host := '127.0.0.1';
  oClient.Port := 80;
  oClient.TLS := True;
  oClient.Options.Parameters := '/ws/';

  oClient.OnConnect := OnConnect;
  oClient.OnMessage := OnMessage;
  oClient.OnDisconnect := OnDisconnect;

  oClient.Active := True;
end;

procedure TForm1.OnMessage(Connection: TsgcWSConnection;
  const Text: string);
begin
  Memo1.Lines.Add(Text);
end;

// Send a text frame
oClient.WriteData('hello');
// uses: sgcWebSocket_Client, sgcWebSocket_Classes
TsgcWebSocketClient *oClient = new TsgcWebSocketClient(this);
oClient->Host = "127.0.0.1";
oClient->Port = 80;
oClient->TLS = true;
oClient->Options->Parameters = "/ws/";

oClient->OnConnect = OnConnect;
oClient->OnMessage = OnMessage;
oClient->OnDisconnect = OnDisconnect;

oClient->Active = true;

void __fastcall TForm1::OnMessage(TsgcWSConnection *Connection,
    const UnicodeString Text)
{
  Memo1->Lines->Add(Text);
}

// Send a text frame
oClient->WriteData("hello");
using esegece.sgcWebSockets;

var client = new TsgcWebSocketClient();
client.Host = "127.0.0.1";
client.Port = 80;
client.TLS = true;
client.Options.Parameters = "/ws/";

client.OnConnect    += (conn) => Console.WriteLine("#connected: " + conn.IP);
client.OnDisconnect += (conn, code) => Console.WriteLine("#disconnected: " + code);
client.OnMessage    += (conn, text) => Console.WriteLine(text);

client.Active = true;

// Send a text frame
client.WriteData("hello");

내부 구성

게시된 속성 23개, 메서드 22개, 이벤트 16개 — 컴포넌트 레퍼런스에서 바로 가져온 내용이에요.

연결 제어

Host, Port, URL, TLS, IPVersion, Active로 동기 또는 비동기 연결을 열어요. Connect/Disconnect는 호출자를 차단하고, Start/Stop은 워커 스레드에서 실행돼요.

킵얼라이브 및 재연결

HeartBeat는 타이머로 WebSocket ping 프레임을 보내요. WatchDog은 예기치 않은 연결 끊김 후 자동으로 재연결해요. OnBeforeHeartBeatOnBeforeWatchDog로 각 주기를 사용자 정의할 수 있어요.

TLS 및 프록시

TLSOptions는 IOHandler(OpenSSL 또는 SChannel), TLS 버전(1.0–1.3), ALPN을 선택해요. Proxy는 HTTP 또는 SOCKS를 통해 핸드셰이크를 라우팅해요. Authentication은 Basic / Bearer / 사용자 정의 방식을 처리해요.

메시징 API

WriteData는 선택적 단편화와 함께 텍스트 프레임을 전송해요. WriteAndWaitData는 피어가 응답할 때까지 차단해요. Ping은 ping 프레임을 보내요. OnMessage, OnBinary, OnFragmented가 들어오는 데이터를 전달해요.

압축 및 스로틀링

Extensions.PerMessage_Deflate는 RFC 7692 압축을 협상해요. Throttle은 양방향에서 초당 비트수를 제한해요. QueueOptions는 연결 스레드에서 Text / Binary / Ping 쓰기를 직렬화해요.

진단

LogFile은 원시 인바운드 및 아웃바운드 트래픽을 디스크에 덤프해요. NotifyEvents는 메인 스레드로 이벤트가 디스패치되는 방식을 선택해요. OnException, OnError, OnHandshake는 프로토콜 수준 세부 정보를 표면화해요.

사양 및 참고 자료

이 컴포넌트가 구현하는 프로토콜의 공식 출처.

문서 및 데모

컴포넌트 레퍼런스로 바로 이동하고, 실행 가능한 데모 프로젝트를 받고, 체험판을 다운로드하세요.

온라인 도움말 — TsgcWebSocketClient 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스.
데모 프로젝트 — 01.WebSocket\01.Client 실행 가능한 예제 프로젝트. sgcWebSockets 패키지에 포함돼 있어요 — 아래에서 체험판을 다운로드하세요.
기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi, C++ Builder, .NET 코드 샘플, 1차 출처 참고 자료.
사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서.

시작할 준비가 되셨나요?

무료 체험판을 다운로드해 Delphi 애플리케이션에 WebSocket 클라이언트 지원을 추가하세요.