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.Synchronize(nil,
procedure //匿名方法
be

本文介绍了datasnap中TDBXCallBack对象如何实现服务器与客户端的回调通信。关键点包括通道管理、客户端标识和回调标识。每个客户端需设置好组件属性并注册回调方法,通过DSServer的BroadcastMessage函数和TDSAdminClient的NotifyCallback函数实现消息传递。
5429

被折叠的 条评论
为什么被折叠?



