TsgcWSServer_HTTPAPI_WebBrokerBridge, sunucu temeli olarak TsgcWebSocketServer_HTTPAPI ile HTTP/2 protokolü etkinleştirilmiş olarak kullanır ve DataSnap, HTTP/2 ve WebSocket bağlantıları için tek bir sunucu kullanmak istiyorsanız faydalıdır.
TsgcWSServer_HTTPAPI_WebBrokerBridge, TsgcWebSocketServer_HTTPAPI öğesinden devralır, bu nedenle bu sunucuya başvurabilirsiniz.
TIdHttpWebBrokerBridge'i TsgcWSServer_HTTPAPI_WebBrokerBridge ile değiştirmek için sonraki adımları izleyin:
1. TsgcWSServer_HTTPAPI_WebBrokerBridge öğesinin yeni bir örneğini oluşturun.
2. TIdHttpWebBrokerBridge öğesine yapılan tüm çağrıları TsgcWSServer_HTTPAPI_WebBrokerBridge ile değiştirin.
3. WebSocket bağlantılarını işlemek için yalnızca TsgcWSServer_HTTPAPI_WebBrokerBridge öğesine bakın.
Datasnap bileşenleri yalnızca Source klasöründe bulunur, derlenmiş klasörlerde bulamazsınız çünkü bu nesneler sgcWebSockets paketine dahil değildir, bu nedenle çalışma zamanında oluşturmanız gerekir.
Yalnızca gerekli dosyaları projenize ekleyin veya yolunuzu sgcWebSockets paketinin Source klasörüne ayarlayın. Gerekli dosyalar:
Proje IdHTTPWebBrokerBridge kullanıyorsa sgcIdHTTPWebBrokerBridge'e geçin (bu yalnızca Enterprise Edition için geçerlidir).
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;