From 48422912254a253a379e0bb4090dcdb4d1d964fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Mussche?= Date: Thu, 23 Jan 2014 10:17:47 +0100 Subject: [PATCH] manual send string instead of superobject (optimization) --- IdServerSocketIOHandling.pas | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/IdServerSocketIOHandling.pas b/IdServerSocketIOHandling.pas index 23b98dc..f3471cf 100644 --- a/IdServerSocketIOHandling.pas +++ b/IdServerSocketIOHandling.pas @@ -16,7 +16,8 @@ type function SendToAll(const aMessage: string; const aCallback: TSocketIOMsgJSON = nil; const aOnError: TSocketIOError = nil): Integer; procedure SendTo (const aContext: TIdServerContext; const aMessage: string; const aCallback: TSocketIOMsgJSON = nil; const aOnError: TSocketIOError = nil); - function EmitEventToAll(const aEventName: string; const aData: ISuperObject; const aCallback: TSocketIOMsgJSON = nil; const aOnError: TSocketIOError = nil): Integer; + function EmitEventToAll(const aEventName: string; const aData: ISuperObject; const aCallback: TSocketIOMsgJSON = nil; const aOnError: TSocketIOError = nil): Integer;overload; + function EmitEventToAll(const aEventName: string; const aData: string ; const aCallback: TSocketIOMsgJSON = nil; const aOnError: TSocketIOError = nil): Integer;overload; procedure EmitEventTo (const aContext: TSocketIOContext; const aEventName: string; const aData: ISuperObject; const aCallback: TSocketIOMsgJSON = nil; const aOnError: TSocketIOError = nil);overload; procedure EmitEventTo (const aContext: TIdServerContext; @@ -71,19 +72,15 @@ begin end; end; -function TIdServerSocketIOHandling.EmitEventToAll(const aEventName: string; const aData: ISuperObject; - const aCallback: TSocketIOMsgJSON; const aOnError: TSocketIOError): Integer; +function TIdServerSocketIOHandling.EmitEventToAll(const aEventName, + aData: string; const aCallback: TSocketIOMsgJSON; + const aOnError: TSocketIOError): Integer; var context: TSocketIOContext; jsonarray: string; begin Result := 0; - if aData.IsType(stArray) then - jsonarray := aData.AsString - else if aData.IsType(stString) then - jsonarray := '["' + aData.AsString + '"]' - else - jsonarray := '[' + aData.AsString + ']'; + jsonarray := '[' + aData + ']'; Lock; try @@ -120,6 +117,15 @@ begin end; end; +function TIdServerSocketIOHandling.EmitEventToAll(const aEventName: string; const aData: ISuperObject; + const aCallback: TSocketIOMsgJSON; const aOnError: TSocketIOError): Integer; +begin + if aData.IsType(stString) then + Result := EmitEventToAll(aEventName, '"' + aData.AsString + '"', aCallback, aOnError) + else + Result := EmitEventToAll(aEventName, aData.AsString, aCallback, aOnError); +end; + procedure TIdServerSocketIOHandling.ProcessHeatbeatRequest( const AContext: TSocketIOContext; const aText: string); begin