Delphi datasnap中间件如何控制长连接的客户端连接?


本文整理自网络,侵删。

 
ActiveConnections: TClientDataSet;

。。。

有客户端连接上来的时候

procedure TForm8.DSServer1Connect(DSConnectEventObject: TDSConnectEventObject);
begin
ActiveConnections.Insert;
if DSConnectEventObject.ChannelInfo <> nil then
begin
ActiveConnections['ID'] := DSConnectEventObject.ChannelInfo.Id;
ActiveConnections['Info'] := DSConnectEventObject.ChannelInfo.Info;
end;
ActiveConnections['UserName'] := DSConnectEventObject.ConnectProperties[TDBXPropertyNames.UserName];
ActiveConnections['ServerConnection'] := DSConnectEventObject.ConnectProperties[TDBXPropertyNames.ServerConnection];
ActiveConnections.Post;

end;

有客户端断开连接的时候

procedure TForm8.DSServer1Disconnect(
DSConnectEventObject: TDSConnectEventObject);
begin
if ActiveConnections.Locate('ID', DSConnectEventObject.ChannelInfo.Id,[]) then
ActiveConnections.Delete;
end;

来源:https://www.cnblogs.com/hnxxcxg/p/5662633.html

相关阅读 >>

Delphi 写一个可拖动的 tshape

Delphi 模拟网站验证码

Delphi xe 在图片上写字

Delphi debug release区别是什么?

Delphi不占cpu的延时函数

Delphi xe android 调试错误:connection closed gracefully

Delphi 字符串中末位是双字节字符的处理(避免最后一位为乱码)

Delphi 双击tmemo选择光标所在行

Delphi与sqlite3数据库

Delphi 与360

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...