ASP.NET Core SignalR 客户端
从 Delphi/C++ Builder 连接到 ASP.NET Core SignalR hub。使用协商的 WebSocket 传输的 JSON hub 协议。
从 Delphi/C++ Builder 连接到 ASP.NET Core SignalR hub。使用协商的 WebSocket 传输的 JSON hub 协议。
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 在最终完成之前传递每个项目。
SignalR Core 以 15 秒的频率使用 type:6 ping 消息;组件自动发送和响应这些消息。
通过底层客户端的 QueryString(?access_token=...)或自定义 Authorization 标头传递 Bearer 令牌——SignalR Core 两者均支持。
绑定 OnSignalRCoreClientCallback 以接收服务器推送的方法调用。通过从处理程序返回解析的 JSON 参数来响应客户端方法调用。
本组件实现协议的权威来源。