Delphi WebSocket 客户端

TsgcWebSocketClient — 适用于 Delphi 和 C++ Builder 的全功能 WebSocket 客户端组件,支持 SSL/TLS、代理、消息压缩和自动重连。

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 个事件——直接来自组件参考文档。

连接控制

HostPortURLTLSIPVersionActive 打开同步或异步连接。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 帧。OnMessageOnBinaryOnFragmented 传递入站数据。

压缩与限速

Extensions.PerMessage_Deflate 协商 RFC 7692 压缩;Throttle 限制每个方向的位率;QueueOptions 在连接线程上序列化 Text / Binary / Ping 写入。

诊断

LogFile 将原始入站和出站流量转储到磁盘;NotifyEvents 选择事件分发到主线程的方式;OnExceptionOnErrorOnHandshake 呈现协议级别的详细信息。

规范与参考

本组件实现协议的权威来源。

文档与演示

直接访问组件参考文档,获取即用型演示项目,并下载试用版。

在线帮助 — TsgcWebSocketClient 本组件的完整属性、方法和事件参考。
演示项目 — 01.WebSocket\01.Client 即用型示例项目,随 sgcWebSockets 包提供——请在下方下载试用版。
技术文档 (PDF) 本组件的功能介绍、快速入门、Delphi、C++ Builder 和 .NET 代码示例及主要来源参考。
用户手册 (PDF) 涵盖库中所有组件的综合手册。

准备好开始了吗?

下载免费试用版,为您的 Delphi 应用程序添加 WebSocket 客户端支持。