Xe2DataSnap回调基本方法总结
更新时间:2023-10-03 00:53:01 阅读量: 综合文库 文档下载
- xe2带摄像吗推荐度:
- 相关推荐
服务端:
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-03
甜甜的温柔文案_甜甜的表白文案08-03
投标售后服务承诺书05-14
某工程土方开挖方案06-16
2018小升初语文知识专项训练:6.形近字辨析基础题及答案解析04-24
初中学生必备的学习方法03-30
如何理解移动互联网06-11
宝洁公司物流方案设计分析 (自动保存的)07-03
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 回调
- Xe2DataSnap
- 基本
- 总结
- 方法