云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Xe2DataSnap回调基本方法总结

Xe2DataSnap回调基本方法总结

  • 62 次阅读
  • 3 次下载
  • 2025/7/5 13:50:26

服务端:

1. ServerContainer中两个元件,TDSServer以及TDSTCPServerTransport 2. 定义通道。如:

Const

DEMOChannel = ‘DemoChannel’; 3. 获取通道中所有回调ID方法:

ServerContainer1.DSServer1.GetAllChannelCallbackId(DEMOChannel); 4. 服务器回叫所有注册的用户方法(与通道、回调ID、传送的信息有关)如:

Var

vMessage :TJSONString; Begin

vMessage := TJSONString.Create(mmMessage.Lines.Text);

ServerContainer1.DSServer1.BroadcastMessage(DEMOChannel, vMessage); End; 原形是:

functionBroadcastMessage(constChannelName:

String;

constMsg:

TJSONValue;

constArgType: Integer = TDBXCallback.ArgJson): boolean; overload;

functionBroadcastMessage(constChannelName: String; constCallbackId: String; constMsg: TJSONValue; constArgType: Integer = TDBXCallback.ArgJson): boolean; overload;

实际服务器回叫用户是执行用户注册类(如:TDemoCallback)对应的虛拟方法Execute,传送给用户端的信息则由参数Msg封裝。

客户端:

1. 两个主要组件:TSQLConnection,TDSClientCallbackChannelManager。分别用于连接服

务器和客户端向服务器注册;TDSClientCallbackChannelManager要指明通道名(ChannelName)、通信类型(CommunicationProtocol=TCP/IP)、服务器地址(DSHostname)及端口(DSPort)。

2. 定义从TDBXCallback衍生类如下:

type

TDemoCallback = class(TDBXCallback) public

function Execute(constArg: TJSONValue): TJSONValue; override; end;

3. 复载虚拟方法Execute如下:

//////////////////////////////////////////////////////////////////////////// ///当DataSnap服务器回叫用户端时就会执行虚拟方法Execute;

///服务器可以把务器端传送到用户端的信息封装在Execute的参数Arg中 ///用TThread类別的方法Synchronize来更新用户端的使用者介面。 ///////////////////////////////////////////////////////////////////////////////// functionTDemoCallback.Execute(constArg: TJSONValue): TJSONValue; var

sDemoMessage : String; begin

Result :=TJSONTrue.Create; if (Arg is TJSONString) then begin

sDemoMessage := TJSONString(Arg).Value; TThread.Synchronize(nil, procedure begin

mm.Lines.Text:= sDemoMessage; end); end; end; 4. 连接DataSnap服务器,建立一个回调识別ID,如下:

procedureTFormMainClient.SetupTask; begin

if not SQLConnection1.Connected then begin

SQLConnection1.Connected := True; end;

callbackId := DateTimeToStr(Now); //根据目前的时间建立一个独特的识別ID Send; 5. 向DataSnap服务器注册这个回叫用户端,如下:

procedureTFormMainClient.BtnStartClick(Sender: TObject); begin

SetupTask; //(连接服务器) MM:= mmDemoMessage; //(回调信息显示的地方)

DSClientCallbackChannelManager1.RegisterCallback(callbackId, TDemoCallback.Create); //注册用户端通过DSClientCallbackChannelManager组件 end;

注意:回叫用户端向服务器注册的信息有:回叫通道、回叫ID、回叫执行方法Execute 其中回叫通道由TDSClientCallbackChannelManager组件指定。

6. 停止用户端回叫如下:

procedureTFormMainClient.BtnStopClick(Sender: TObject); begin

DSClientCallbackChannelManager1.UnregisterCallback(callbackId); end;

停止用户端回叫的信息有:回叫通道、回叫ID

当然,客户端可以定义多个TDBXCallback衍生类,每个都有自己的虚拟方法Execute,回叫用户端向服务器注册时,可以选择不同的回叫执行方法Execute了。

搜索更多关于: Xe2DataSnap回调基本方法总结 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

服务端: 1. ServerContainer中两个元件,TDSServer以及TDSTCPServerTransport 2. 定义通道。如: Const DEMOChannel = ‘DemoChannel’; 3. 获取通道中所有回调ID方法: ServerContainer1.DSServer1.GetAllChannelCallbackId(DEMOChannel); 4. 服务器回叫所有注册的用户方法(与通道、回调ID、传送的信息有关)如: Var vMessage :TJSONString; Begin vMessage := TJSONString.Create(mmMessage.Lines.Text); ServerContaine

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com