Delphi WebSocket 客户端
TsgcWebSocketClient — 适用于 Delphi 和 C++ Builder 的全功能 WebSocket 客户端组件,支持 SSL/TLS、代理、消息压缩和自动重连。
TsgcWebSocketClient — 适用于 Delphi 和 C++ Builder 的全功能 WebSocket 客户端组件,支持 SSL/TLS、代理、消息压缩和自动重连。
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 在意外断开后自动重连。OnBeforeHeartBeat 和 OnBeforeWatchDog 允许您自定义每个周期。
TLSOptions 选择 IOHandler(OpenSSL 或 SChannel)、TLS 版本(1.0-1.3)和 ALPN;Proxy 通过 HTTP 或 SOCKS 路由握手;Authentication 处理 Basic / Bearer / 自定义方案。
WriteData 发送可选分片的文本帧;WriteAndWaitData 阻塞直到对端响应;Ping 发送 ping 帧。OnMessage、OnBinary 和 OnFragmented 传递入站数据。
Extensions.PerMessage_Deflate 协商 RFC 7692 压缩;Throttle 限制每个方向的位率;QueueOptions 在连接线程上序列化 Text / Binary / Ping 写入。
LogFile 将原始入站和出站流量转储到磁盘;NotifyEvents 选择事件分发到主线程的方式;OnException、OnError 和 OnHandshake 呈现协议级别的详细信息。