1,593
社区成员
发帖
与我相关
我的任务
分享
DSClientCallbackChannelManager1.ManagerId := ClientId;
DSClientCallbackChannelManager1.RegisterCallback(CallbackId,
TDataSnapCallBack.Create);
procedure TServerContainer1.DSServer1Connect(
DSConnectEventObject: TDSConnectEventObject);
begin
DSConnectEventObject.ChannelInfo.ClientInfo.IpAddress;
DSConnectEventObject.DbxConnection.Destroy;
end;
procedure TServerContainer1.DSServer1Connect(
DSConnectEventObject: TDSConnectEventObject);
begin
DSConnectEventObject.ChannelInfo.ClientInfo.IpAddress;
DSConnectEventObject.DbxConnection.Destroy;
end;
上面的代码就是服务端拒绝客户端连接,用于限制最大连接数时使用
现在想在服务端根据ClientId和CallbackId进行相应的处理,并不限于IP
如:
一、相同的ClientId重复登录,提示密码泄露;
二、相同的ClientId重复登录,直接拒绝(DbxConnection.Destroy)
三、连接数达到200或设定的某值后,只有VIP ClientId可以连接,其它的直接拒绝(DbxConnection.Destroy)
以及更多其它情况
这就需要将ClientId、CallbackId和实际的DbxConnection联系起来。