先实现TDSAuthenticationManager的OnUserAuthticate事件对客户端认证:procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate( Sender: TObject; const Pro....
分类:
其他好文 时间:
2015-04-08 21:14:10
阅读次数:
366
在服务端只要实现DSAuthenticationManager1组件的OnuserAuthenticate事件,我们就可以完成客户端接入接口的认证,他的事件如下:procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate(...
分类:
其他好文 时间:
2015-04-08 00:56:13
阅读次数:
139
我们只要实现DSAuthenticationManager1的OnuserAuthenticate和OnUserAuthorize事件,就可以对接口调用进行控制,事件如下:procedure TServerContainer1.DSAuthenticationManager1UserAuthenti...
分类:
其他好文 时间:
2015-04-08 00:51:12
阅读次数:
239
关于 DataSnaphttp://my.oschina.net/u/582827/blog/324464【活跃】[深圳]自在(1634421739) 0:04:57这几天以一个简单项目结合开源数据库MySQL实测了一下 DataSnap Server 及 Multi-Device DataSnap...
分类:
其他好文 时间:
2015-03-28 20:20:03
阅读次数:
166
楼主的想法代表大多数人的想法,就是用工具的时候只想着便利,完全不想着创造,DataSnap只是一个框架,谁让你非得去用它全部的功能了,你完全可以自己写一些逻辑去在DataSnap之上,你非要用绑定去实现,它效率肯定很低。可以说你根本不理解什么叫三层,三层只是一种思想,并不是一种技术,不是说哪种技术就...
在此,笔者以DATASNAP为例,其它中间件以此类推。中间件为什么要使用对象池?对象池——让所有的对象免堕轮回之苦,对象不再为其生和死而烦恼。要想让中间件长久稳定地运行,做到无人值守,对象池很重要,对象池大致分为以下几类。1)线程池,DATASNAP使用INDY10作为其通讯控件,其线程池实际上就是...
分类:
其他好文 时间:
2015-03-19 00:44:33
阅读次数:
224
DSServer作用:管理DataSnap服务器生命周期。(启动,停止)方法:1.BroadcastMessage 向所以客户端发送消息,客户端必须已注册通道。2.BroadcastObject发送一个对象的所有客户端3.CallbackTunnelOf返回通信隧道。4.Connecting触发一个...
分类:
其他好文 时间:
2015-03-15 22:47:51
阅读次数:
177
采用服务器返回数据,一种是返回字符串数据例如JSON,跨平台跨语言,任何语言调用都支持兼容,类似WEBService。第二种是紧密结合c++builder语言,传输DataSet,可以是ClientDataSet,也可以是FDMemTable,或TDataSet,这类好处是DataSet本身包含了很...
分类:
其他好文 时间:
2015-02-09 12:36:43
阅读次数:
1493
如果客户端是TCP/IP是短连接的情况就没有必要了。 1 type 2 pClientConns = ^TClientConns; // 客户连接 3 TClientConns = record 4 clientid: integer; 5 ip: string; 6 port: str...
分类:
其他好文 时间:
2015-01-20 15:16:52
阅读次数:
256
回调的原理很简单,开一个线程(为了区别其它线程,先将此线程命名为“通道线程”),注册一个“轻量”的回调,然后此线程(通道线程)等服务器返回信息(回调),服务器有信息返回时,通道线程再开个线程执行用户注册的回调(TDBXCallback)的EXECUTE方法。通道线程返回继续等服务器的回调信息。TDS...