TTMSFNCWebsocketClient is a headless component for connecting to WebSocket servers and exchanging text and binary messages over a persistent, bidirectional connection. It implements the RFC 6455 WebSocket protocol, including the handshake, masking, fragmentation, ping and pong, and the closing handshake, over plain ws:// or TLS-secured wss:// connections. Use it whenever a VCL or FMX application must receive data the moment a server pushes it.
Not available; use TMS WEB Core's TWebSocketClient component in browser applications.
Minimal example
Create the client, point it at a server, wire the connection events, and connect:
Connect to a WebSocket serverPascal
procedure TForm1.SetupClient;
begin
FClient := TTMSFNCWebsocketClient.Create(Self);
FClient.HostName := 'localhost';
FClient.Port := 5050;
FClient.OnConnect := ClientConnect;
FClient.OnDisconnect := ClientDisconnect;
FClient.OnMessageReceived := ClientMessageReceived;
// Connect blocks until the TCP connection and the WebSocket handshake are
// done. OnConnect fires before it returns; Active stays False when the
// server rejected the handshake.
FClient.Connect;
if not FClient.Active then
ShowMessage('The server did not accept the WebSocket handshake.');
end;
procedure TForm1.ClientConnect(Sender: TObject; AConnection: TTMSFNCWebSocketConnection);
begin
// Connected - it is now safe to Send.
sendBtn.Enabled := True;
end;
procedure TForm1.ClientDisconnect(Sender: TObject; AConnection: TTMSFNCWebSocketConnection);
begin
sendBtn.Enabled := False;
end;