ASP.NET SignalR 客户端

从 Delphi/C++ Builder 连接到 ASP.NET SignalR(经典)hub。通过单个类型化组件协商、调用服务器方法并接收客户端回调。

TsgcWSAPI_SignalR

经典 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 之前执行协商调用。

Hub 方法调用

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 组件。

规范与参考

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

文档与演示

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

在线帮助 — API_SignalR 本组件的完整属性、方法和事件参考。
免费试用 — sgcWebSockets 下载试用包 to connect to ASP.NET SignalR hubs (Delphi 版)。
技术文档 (PDF) 本组件的功能介绍、快速入门、Delphi & C++ Builder 代码示例及主要来源参考。
用户手册 (PDF) 涵盖库中所有组件的综合手册。

准备好连接 SignalR Hub 了吗?

下载免费试用版,从您的 Delphi 应用程序连接到 ASP.NET SignalR hub。