datasnap使用TDBXCallBack对象进行服务器和客户端口的回调通信。
该技术主要涉及到几个关键点:
1、通道;
2、客户端标识;
3、回调标识;
注意:
1、一个客户端正常只需要建立一个通道,一个通道可以注册多个回调标识;
2、每个客户端标识不能重复;
3、客户端添加 TDSClientCallbackChannelManager 组件,并设置好 channelName、DSHostName、CommuncationProtocol、DSPort、ManagerID属性
4、注册回调方法 DSClientCallbackChannelManager1.RegisterCallback(callid,TDataSnapCallBack.Create); 注册成功返回true
5、RegisterCallback的第二个参数是继承TDBXCallBack类的对象,只要实现execute方法,如下:
function TDataSnapCallBack.Execute(const Arg: TJSONValue): TJSONValue;
var
str:string;
begin
Result:=TJSONString.Create('成功回叫客户端'); //一定要回传给服务端信息 ,在客户端发送时会显示
if Assigned(Arg) then
if (Arg is TJSONString) then
begin
str:=TJSONString(Arg).Value;
TThread.S