From dea9aa56a718341d33a4b6257e5351156907e44f Mon Sep 17 00:00:00 2001 From: mattias Date: Thu, 22 Jun 2023 12:14:28 +0200 Subject: [PATCH] fcl-web: added TCustomWebsocketUpgrader.OnConnect --- packages/fcl-web/src/websocket/wsupgrader.pp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/fcl-web/src/websocket/wsupgrader.pp b/packages/fcl-web/src/websocket/wsupgrader.pp index f0be94e1b1..46d4b76bd5 100644 --- a/packages/fcl-web/src/websocket/wsupgrader.pp +++ b/packages/fcl-web/src/websocket/wsupgrader.pp @@ -11,6 +11,7 @@ Type { TCustomWebsocketUpgrader } TAllowUpgradeEvent = Procedure(Sender : TObject; aRequest : TRequest; var aAllow : Boolean) of object; + TWSConnectEvent = procedure(Sender: TObject; AConnection: TWSServerConnection) of object; TCustomWebsocketUpgrader = Class(TCustomWSServer) private @@ -22,8 +23,8 @@ Type FHost: String; function GetHandshakeRequest(aRequest: TFPHTTPConnectionRequest): TWSHandShakeRequest; function GetUpgradeName: String; - procedure SetHost(const AValue: String); - procedure SetUpgradeName(const AValue: String); + procedure SetHost(AValue: String); + procedure SetUpgradeName(AValue: String); procedure SetWebServer(AValue: TFPCustomHttpServer); Protected // Override from custom server @@ -64,6 +65,7 @@ Type Property MessageWaitTime; Property Options; Property OnAllow; + property OnConnect; property OnMessageReceived; property OnDisconnect; property OnControlReceived; @@ -117,7 +119,7 @@ begin FreeConnectionHandler; end; -procedure TCustomWebsocketUpgrader.SetHost(const AValue: String); +procedure TCustomWebsocketUpgrader.SetHost(AValue: String); begin if Host=AValue then Exit; CheckInactive; @@ -204,6 +206,8 @@ begin aConn.DoHandshake(aHandshake); Connections.Add(aConn); ConnectionHandler.HandleConnection(aConn,False); + if Assigned(OnConnect) then + OnConnect(Self,aConn); finally aHandshake.Free; end; @@ -216,7 +220,7 @@ begin end; -procedure TCustomWebsocketUpgrader.SetUpgradeName(const AValue: String); +procedure TCustomWebsocketUpgrader.SetUpgradeName(AValue: String); begin if aValue=GetUpgradeName then exit;