Jump to content


Photo

Delphi y Datasnap.DsSession


Best Answer MANUEL ESPLA , 23 September 2021 - 10:12 AM

Tras hacer pruebas, esto funciona para ANDROID:
 

delphi
  1.   DSClientCallbackChannelManager1.ManagerId := TDSSessionHelper.GenerateSessionId; 
  2.   FMyCallbackName                           := TDSSessionHelper.GenerateSessionId;

 
Hace lo mismo, pero en vez de depender de DataSnap.DSSession, que no soporta ANDROID, depende de Datasnap.DSCommon que no presenta problema. Go to the full post


  • Please log in to reply
4 replies to this topic

#1 MANUEL ESPLA

MANUEL ESPLA

    Newbie

  • Miembros
  • Pip
  • 9 posts

Posted 23 September 2021 - 05:32 AM

Buenas tardes.

 

Tengo un programa que a través del componente TDSClientCallBackChannelManager gestiona unos mensajes a través de un servidor DATASNAP. Quiero hacerlo para ANDROID e IOS, y el primer problema es que  me dice en el Uses que DataSnap.DsSession no existe en ANDROID y supongo que tampoco en IOS. Alguna respuesta.

 

Gracias


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14468 posts
  • LocationMéxico

Posted 23 September 2021 - 07:24 AM

MANUEL ESPLA, on 23 Sept 2021 - 11:32 AM, said:

Buenas tardes.
 
Tengo un programa que a través del componente TDSClientCallBackChannelManager gestiona unos mensajes a través de un servidor DATASNAP. Quiero hacerlo para ANDROID e IOS, y el primer problema es que  me dice en el Uses que DataSnap.DsSession no existe en ANDROID y supongo que tampoco en IOS. Alguna respuesta.
 
Gracias

 
 
Hola MANUEL ESPLA,
 
Supongo que es porque DSSession es para Servidor, esa clase está contenida en la biblioteca DataSnapServerXXX.bpl

 

Saludos


  • 0

#3 MANUEL ESPLA

MANUEL ESPLA

    Newbie

  • Miembros
  • Pip
  • 9 posts

Posted 23 September 2021 - 08:16 AM

En la zona de Interface utilizo:

delphi
  1. type
  2.   TMyCallback = class(TDBXCallback)
  3.   public
  4.     function Execute(const Arg: TJSONValue): TJSONValue; override;
  5.   end;  

Ya en Implementación la funcion es:


delphi
  1. function TMyCallback.Execute(const Arg: TJSONValue): TJSONValue;
  2. begin
  3.   PanelForm.QueueLogMsg(Arg.ToString);
  4.   Result := TJSONTrue.Create;
  5. end;

 
Después de conectar con el Servidor de DataSnap, se utiliza estas instrucciones que las tengo en el FormShow:
 

delphi
  1. DSClientCallbackChannelManager1.ManagerId := TDSTunnelSession.GenerateSessionId;
  2.   FMyCallbackName                           := TDSTunnelSession.GenerateSessionId;
  3.   DSClientCallbackChannelManager1.RegisterCallback(FMyCallbackName,TMyCallback.Create);
  4.   LocalClientId   := DSClientCallbackChannelManager1.ManagerId;
  5.  
  6.   LocalCallbackId := FMyCallbackName;

 
A DataSnap.DsSession pertenece TDSTunnelSession.
 
Funciona bien en Windows, pero en ANDROID me dice que mo existe esa libreria.
  • 0

#4 MANUEL ESPLA

MANUEL ESPLA

    Newbie

  • Miembros
  • Pip
  • 9 posts

Posted 23 September 2021 - 10:12 AM   Best Answer

Tras hacer pruebas, esto funciona para ANDROID:
 

delphi
  1.   DSClientCallbackChannelManager1.ManagerId := TDSSessionHelper.GenerateSessionId; 
  2.   FMyCallbackName                           := TDSSessionHelper.GenerateSessionId;

 
Hace lo mismo, pero en vez de depender de DataSnap.DSSession, que no soporta ANDROID, depende de Datasnap.DSCommon que no presenta problema.
  • 1

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14468 posts
  • LocationMéxico

Posted 23 September 2021 - 02:00 PM

MANUEL ESPLA, on 23 Sept 2021 - 4:12 PM, said:

Tras hacer pruebas, esto funciona para ANDROID:
 


delphi
  1.   DSClientCallbackChannelManager1.ManagerId := TDSSessionHelper.GenerateSessionId; 
  2.   FMyCallbackName                           := TDSSessionHelper.GenerateSessionId;

 
Hace lo mismo, pero en vez de depender de DataSnap.DSSession, que no soporta ANDROID, depende de Datasnap.DSCommon que no presenta problema.

 
 
Ya veo, que bien, utiliza un Helper para darle la vuelta.
 
Muchas gracias por la retro. (y)
 
Saludos
  • 0




IP.Board spam blocked by CleanTalk.