TsgcWSServer_HTTPAPI_WebBrokerBridge

TsgcWSServer_HTTPAPI_WebBrokerBridge używa TsgcWebSocketServer_HTTPAPI z włączonym protokołem HTTP/2 jako bazą serwera i jest przydatny, gdy chce się używać jednego serwera do obsługi połączeń DataSnap, HTTP/2 i WebSocket.

TsgcWSServer_HTTPAPI_WebBrokerBridge dziedziczy po TsgcWebSocketServer_HTTPAPI, dzięki czemu można odwoływać się do tego serwera.

Należy wykonać poniższe kroki, aby zastąpić TIdHttpWebBrokerBridge przez TsgcWSServer_HTTPAPI_WebBrokerBridge:

1. Utwórz nową instancję klasy TsgcWSServer_HTTPAPI_WebBrokerBridge.

2. Należy zastąpić wszystkie wywołania klasy TIdHttpWebBrokerBridge klasą TsgcWSServer_HTTPAPI_WebBrokerBridge.

3. Aby obsłużyć połączenia WebSocket, należy odwołać się do TsgcWSServer_HTTPAPI_WebBrokerBridge.

Konfiguracja

Komponenty Datasnap znajdują się wyłącznie w folderze Source; nie znajdziesz ich w skompilowanych folderach, ponieważ te obiekty nie są dołączone do pakietu sgcWebSockets, dlatego należy je tworzyć w czasie wykonania.

Wystarczy dodać wymagane pliki do projektu lub ustawić ścieżkę do folderu Source pakietu sgcWebSockets. Wymagane pliki:

Jeśli projekt korzysta z IdHTTPWebBrokerBridge, należy zastąpić go komponentem sgcIdHTTPWebBrokerBridge (dotyczy wyłącznie edycji Enterprise).

Zdarzenia


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;