ASP.NET Core SignalR 客户端

从 Delphi/C++ Builder 连接到 ASP.NET Core SignalR hub。使用协商的 WebSocket 传输的 JSON hub 协议。

TsgcWSAPI_SignalRCore

ASP.NET Core SignalR 协议的客户端——握手(JSON hub 协议)、调用消息、流式传输、完成和保持连接 ping。

组件类

TsgcWSAPI_SignalRCore

支持平台

Windows, macOS, Linux, iOS, Android

版本

Standard / Professional / Enterprise

协商、握手、调用

与指向 hub URL 的 TsgcWebSocketClient 配对,组件协商并执行 JSON 协议握手,然后调用方法。

uses
  sgcWebSocket, sgcWebSocket_API_SignalRCore;

var
  WSClient: TsgcWebSocketClient;
  Hub: TsgcWSAPI_SignalRCore;
begin
  WSClient := TsgcWebSocketClient.Create(nil);
  WSClient.URL := 'wss://signalr.example.com/chatHub';

  Hub := TsgcWSAPI_SignalRCore.Create(nil);
  Hub.Client := WSClient;

  WSClient.Active := True;

  // Server method "SendMessage" with two args
  Hub.Invoke('SendMessage', ['alice', 'hello']);
end;
// uses: sgcWebSocket, sgcWebSocket_API_SignalRCore
TsgcWebSocketClient *WSClient = new TsgcWebSocketClient(this);
WSClient->URL = "wss://signalr.example.com/chatHub";

TsgcWSAPI_SignalRCore *Hub = new TsgcWSAPI_SignalRCore(this);
Hub->Client = WSClient;

WSClient->Active = true;

内部功能

在 TsgcWebSocketClient 之上实现 SignalR Core JSON hub 协议。

协商 + 握手

执行 HTTP 协商调用(如有需要),发送 {"protocol":"json","version":1} 握手帧,解析服务器的确认后才传递 OnConnect。

调用消息

Invoke(target, args) 发送 type:1 调用信封并跟踪 invocationId。当完成信息到达时,OnSignalRCoreResult 以类型化的返回值触发。

流式接收

支持服务器端 IAsyncEnumerable / 流式 hub——StreamInvocation 打开流,OnSignalRCoreStreamItem 在最终完成之前传递每个项目。

保持连接 ping

SignalR Core 以 15 秒的频率使用 type:6 ping 消息;组件自动发送和响应这些消息。

认证令牌

通过底层客户端的 QueryString?access_token=...)或自定义 Authorization 标头传递 Bearer 令牌——SignalR Core 两者均支持。

双向通信

绑定 OnSignalRCoreClientCallback 以接收服务器推送的方法调用。通过从处理程序返回解析的 JSON 参数来响应客户端方法调用。

规范与参考

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

文档与演示

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

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

准备好连接 ASP.NET Core SignalR 了吗?

下载免费试用版,将 ASP.NET Core SignalR hub 集成到您的 Delphi 应用程序中。