TsgcWSServer_HTTPAPI_WebBrokerBridge

TsgcWSServer_HTTPAPI_WebBrokerBridge usa TsgcWebSocketServer_HTTPAPI com HTTP/2 protocolo habilitado como base do servidor e é útil se você quiser usar um único servidor para conexões DataSnap, HTTP/2 e WebSocket.

 

TsgcWSServer_HTTPAPI_WebBrokerBridge herda de TsgcWebSocketServer_HTTPAPI, portanto você pode consultar este servidor.

 

Siga os próximos passos para substituir TIdHttpWebBrokerBridge por TsgcWSServer_HTTPAPI_WebBrokerBridge:

 

1. Crie uma nova instância de TsgcWSServer_HTTPAPI_WebBrokerBridge.

 

2. Substitua todas as chamadas a TIdHttpWebBrokerBridge por TsgcWSServer_HTTPAPI_WebBrokerBridge.

 

3. Para tratar conexões WebSocket basta consultar TsgcWSServer_HTTPAPI_WebBrokerBridge.

 

Configuração

Os componentes Datasnap estão localizados apenas na pasta Source; você não os encontrará nas pastas compiladas, porque esses objetos não estão incluídos no pacote sgcWebSockets, portanto você deve criá-los em tempo de execução.

Basta adicionar os arquivos necessários ao seu projeto ou definir o caminho para a pasta Source do pacote sgcWebSockets. Arquivos necessários:

 

 

Se o projeto fizer uso de IdHTTPWebBrokerBridge, altere para sgcIdHTTPWebBrokerBridge (isto se aplica apenas à Enterprise Edition).

Eventos


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;