ASP.NET SignalR 客户端
从 Delphi/C++ Builder 连接到 ASP.NET SignalR(经典)hub。通过单个类型化组件协商、调用服务器方法并接收客户端回调。
从 Delphi/C++ Builder 连接到 ASP.NET SignalR(经典)hub。通过单个类型化组件协商、调用服务器方法并接收客户端回调。
经典 ASP.NET SignalR 协议的客户端。处理协商 REST 步骤、WebSocket 连接 URL、hub 方法调用和 JSON 信封。
TsgcWSAPI_SignalR
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
与目标为 SignalR 端点的 TsgcWebSocketClient 配对,声明 hub,然后调用 Invoke(服务器方法)并绑定到 OnSignalRMessage(回调)。
uses
sgcWebSocket, sgcWebSocket_API_SignalR;
var
WSClient: TsgcWebSocketClient;
SignalR: TsgcWSAPI_SignalR;
begin
WSClient := TsgcWebSocketClient.Create(nil);
WSClient.Host := 'signalr.example.com';
SignalR := TsgcWSAPI_SignalR.Create(nil);
SignalR.Client := WSClient;
SignalR.SignalR.Hub := 'chathub';
WSClient.Active := True;
// Invoke a server-side method on the hub
SignalR.Invoke('SendMessage', ['user1', 'hello']);
end;
// uses: sgcWebSocket, sgcWebSocket_API_SignalR
TsgcWebSocketClient *WSClient = new TsgcWebSocketClient(this);
TsgcWSAPI_SignalR *SignalR = new TsgcWSAPI_SignalR(this);
SignalR->Client = WSClient;
SignalR->SignalR->Hub = "chathub";
WSClient->Active = true;
实现传统 ASP.NET SignalR 协议(Core 之前的变体)。
经典 SignalR 协议首先通过 HTTP 协商(连接令牌、协议版本、传输集)。组件在打开 WebSocket 之前执行协商调用。
Invoke(method, args) 发送带有 H(hub)、M(方法)、A(参数)字段和序列 ID 的 hub 样式信封;回复以 OnSignalRMessage 形式到达。
服务器发起的推送消息以 OnSignalRClientCallback(method, args) 形式呈现——组件解析 M / A 信封并传递原始 JSON 参数。
断开连接时,组件重新协商并恢复连接 ID。底层客户端上的 WatchDog 处理传输级别的重试。
身份验证 Cookie 自动从协商调用传播到 WebSocket 握手中。通过底层客户端配置自定义标头。
经典 SignalR 仍然为 ASP.NET 4.x 应用程序提供维护。对于 .NET Core / .NET 5+ hub,请改用 TsgcWSAPI_SignalRCore 组件。
本组件实现协议的权威来源。