TsgcWSServer_HTTPAPI_WebBrokerBridge

TsgcWSServer_HTTPAPI_WebBrokerBridge 使用启用了 HTTP/2 协议的TsgcWebSocketServer_HTTPAPI 作为服务器基础 ,适用于需要在单个服务器上处理 DataSnap、HTTP/2 和 WebSocket 连接的场景。

 

TsgcWSServer_HTTPAPI_WebBrokerBridge 继承自 TsgcWebSocketServer_HTTPAPI,因此您可以引用此服务器。

 

按照以下步骤将 TIdHttpWebBrokerBridge 替换为 TsgcWSServer_HTTPAPI_WebBrokerBridge

 

1. 创建 TsgcWSServer_HTTPAPI_WebBrokerBridge 的新实例。

 

2. 将所有对 TIdHttpWebBrokerBridge 的调用替换为 TsgcWSServer_HTTPAPI_WebBrokerBridge。

 

3. 如需处理 WebSocket 连接,请参阅 TsgcWSServer_HTTPAPI_WebBrokerBridge

 

配置

Datasnap 组件仅位于 Source 文件夹中,在编译后的文件夹中找不到,因为这些对象未包含在 sgcWebSockets 包中,所以必须在运行时创建。

只需将所需文件添加到您的项目中,或将路径设置到 sgcWebSockets 包的 Source 文件夹。所需文件:

 

 

如果项目使用了 IdHTTPWebBrokerBridge,请将其更改为 sgcIdHTTPWebBrokerBridge(仅适用于 Enterprise Edition)。

事件


FServer := TsgcWSServer_HTTPAPI_WebBrokerBridge.Create(Self);
FServer.OnCommandRequest := OnCommandRequestEvent;
FServer.OnMessage := OnWebSocketMessage;
  
procedure OnCommandRequestEvent(aConnection : TsgcWSConnection_HTTPAPI; 
  const aRequestInfo: THttpServerRequest; var aResponseInfo: THttpServerResponse; var aHandled: Boolean);
begin
  if ARequestInfo.Document = '/test.html' then
  begin
    AResponseInfo.ResponseNo := 200;
    AResponseInfo.ContentText := '... body ...';
    aHandled := True;
  end;
end;
procedure OnWebSocketMessage(aConnection: TsgcWSConnection; const aText: string);
begin
  aConnection.WriteData(aText);
end;