TsgcWSHTTP2WebBrokerBridgeServer 以启用了 HTTP/2 协议的TsgcWebSocketHTTPServer 作为服务器基础 ,适用于希望使用单一服务器同时处理 DataSnap、HTTP/2 和 WebSocket 连接的场景。
TsgcWSHTTP2WebBrokerBridgeServer 继承自 TsgcWebSocketHTTPServer,您可以引用此服务器。
按照以下步骤将 TIdHttpWebBrokerBridge 替换为 TsgcWSHTTP2WebBrokerBridgeServer:
1. 创建 TsgcWSHTTP2WebBrokerBridgeServer 的新实例。
2. 将所有对 TIdHttpWebBrokerBridge 的调用替换为 TsgcWSHTTP2WebBrokerBridgeServer。
3. 如需处理 WebSocket 连接,请参考 TsgcWebSocketHTTPServer。
Datasnap 组件仅位于 Source 文件夹中,在编译后的文件夹中找不到,因为这些对象未包含在 sgcWebSockets 包中,所以必须在运行时创建。
只需将所需文件添加到您的项目中,或将路径设置到 sgcWebSockets 包的 Source 文件夹。所需文件:
如果项目使用了 IdHTTPWebBrokerBridge,请将其更改为 sgcIdHTTPWebBrokerBridge(仅适用于 Enterprise Edition)。
FServer := TsgcWSHTTP2WebBrokerBridgeServer.Create(Self);
FServer.OnCommandRequest := OnCommandRequestEvent;
FServer.OnCommandGet := OnCommandGetevent;
procedure OnCommandRequestEvent(AThread: TIdContext; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo; var aHandled: Boolean);
begin
if ARequestInfo.Document = '/test.html' then
aHandled := True;
end;
procedure OnCommandGetevent(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo);
begin
if ARequestInfo.Document = '/test.html' then
begin
AResponseInfo.ResponseNo := 200;
AResponseInfo.ContentText := 'hello all';
end;
end;