DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jeff1314
今日帖子: 10
在线用户: 10
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 xfyserver (s) ★☆☆☆☆ -
普通会员
2017/6/5 11:57:08
标题:
重金找大神解决,DATASNAP使用过程中掉线后重新连结的问题 浏览:1865
加入我的收藏
楼主: 重金找大神解决,DATASNAP使用过程中掉线后重新连结的问题,自己开发的一个软件,因为要使用外网,外网可能掉线,掉线了,数据就无法保存了,现找大神解决这个问题,付费解决,有意的加QQ972370901
----------------------------------------------
-
作者:
男 mochizuki (mochizuki) ★☆☆☆☆ -
普通会员
2017/6/5 12:22:28
1楼: 用心跳
----------------------------------------------
-
作者:
男 zyp1984 (小李他妈的飞刀) ★☆☆☆☆ -
普通会员
2017/6/5 13:23:45
2楼: 在做你的操作之前,判断是否掉线。如果 掉线conect一下就行。就是比较麻烦。。
----------------------------------------------
山外青山楼外楼,能人背后有能人弄..
作者:
男 zhangpuqing (pupu) ★☆☆☆☆ -
普通会员
2017/6/5 13:47:27
3楼: 你还没解决呀.出多少钱.
----------------------------------------------
-
作者:
男 xfyserver (s) ★☆☆☆☆ -
普通会员
2017/6/5 18:02:43
4楼: 哥们,你收多少钱
----------------------------------------------
-
作者:
男 xfyserver (s) ★☆☆☆☆ -
普通会员
2017/6/5 18:03:13
5楼: 加QQ聊吧
----------------------------------------------
-
作者:
男 mousesoft (MouseSoft) ★☆☆☆☆ -
盒子活跃会员
2017/6/5 21:10:58
6楼: 我也一直在思考这个问题,为什么这么多年了,TSQLConnection都不增加一个心跳包的功能;
----------------------------------------------
-
作者:
男 zyp1984 (小李他妈的飞刀) ★☆☆☆☆ -
普通会员
2017/6/6 9:00:15
7楼: 说明不重视还是外国网络环境好。。。
----------------------------------------------
山外青山楼外楼,能人背后有能人弄..
作者:
男 wanlgrm (么么) ▲▲▲▲▲ -
普通会员
2017/6/6 9:25:46
8楼: 不要保持长连接,用完就释放ServerMethodsClient,关闭Sqlconnection, 需要用的时候创建ServerMethodsClient,打开 Sqlconnection。再ServerMethodsClient.Create(Sqlconnection.DBXConnection) 不就可以?
----------------------------------------------
-只会复制粘贴!
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/6/6 9:32:06
9楼: 使用 http 协议 webservice rest 等接口。不会有这些问题吧。
我从来不用datasanp 只用 RO SDK 的 http 接口。无法体会这种问题。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 cuit_xiong (熊猫) ★☆☆☆☆ -
普通会员
2017/6/6 11:13:42
10楼: 对建议走http
----------------------------------------------
-
作者:
男 chonghai (DBlue) ★☆☆☆☆ -
盒子活跃会员
2017/6/6 13:55:17
11楼: datasnap在互联网上是通过HTTP来连接,一旦断开后服务器会出现假连接。
我当时也是被这个问题困扰了很久,后面用在服务器端加入心跳检测,解决了部分问题,但也不能完全解决,偶尔还是会断。

楼主可搜索下“心跳包”的关键字,还是有很多资料的。

不过现在都建议使用IOCP了,论坛里已经有牛人做出跨平台框架,你可试试看。
----------------------------------------------
喜欢Delphi,关注Delphi,愿和广大爱好者交朋友。
作者:
男 seven_14 (seven_14) ★☆☆☆☆ -
普通会员
2017/6/6 15:28:03
12楼: 我怎么有印象从哪个版本开始(XE4?),DataSnap已经增加了心跳包(KeepAlive)的功能了啊。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/6/6 15:35:51
13楼: http 模式不可能有什么当前在线连接了。都是不在线的。
只有最近访问。
http 模式不需要心跳包。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 grjs_2004 (grjsITname) ★☆☆☆☆ -
盒子活跃会员
2017/6/6 22:08:36
14楼: 用连接池管理连接,没有必要实时地连接到服务器数据库!
----------------------------------------------
Everyone will to do best!
作者:
男 mousesoft (MouseSoft) ★☆☆☆☆ -
盒子活跃会员
2017/6/6 23:31:52
15楼: 现在的HTTP也走长连接的路线了,REST的回调,WEBSOCKET这些都是用长连接的实例;
----------------------------------------------
-
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲▲▲ -
普通会员
2017/6/7 8:04:29
16楼: 补一刀,广一告:

咱在QuickBurro里的方法: 
1、通过即时Socket断开事件+心跳包检出断开相结合来检出连接断开
2、用专门实现的一个控件来实现重连处理,控件声明及使用效果如下:

type
  TReconnector = class(TComponent)
  private
     fRetryInterval: integer;
     fUserConn: TUserConnection;          
     RelayTimer: TTimer;
     fOnNeedReconnect: TReconnectEvent;
     fOnBindingProp: TBindingEvent;
     fOnReconnectSuccess: TOnConnectSuccess;
     fOnReconnectFail: TOnConnectFail;
     fOnBindingSuccess: TOnBindingSuccess;
     fOnBindingFail: TOnBindingFail;
     fOnReloginSuccess: TOnLoginSuccess;
     fOnReloginFail: TOnLoginFail;
     OldConnectSuccess: TOnConnectSuccess;
     OldConnectFail: TOnConnectFail;
     OldLoginSuccess: TOnLoginSuccess;
     OldLoginFail: TOnLogoutFail;
     procedure SetRetryInterval(Interval: integer);
     procedure SetUserConn(Conn: TUserConnection);
     procedure RelayTimerTimer(Sender: TObject);

  public
     Constructor Create(AOwner: TComponent); override;
     Destructor Destroy(); override;
     procedure StartupMonitor;
     procedure StopMonitor;

  protected
     procedure Notification(AComponent: TComponent; Operation: TOperation); override;

  published
     property RetryInterval: integer read fRetryInterval write SetRetryInterval;
     property UserConn: TUserConnection read fUserConn write SetUserConn;
     property OnNeedReconnect: TReconnectEvent read fOnNeedReconnect write fOnNeedReconnect;
     property OnBindingProp: TBindingEvent read fOnBindingProp write fOnBindingProp;
     property OnReconnectSuccess: TOnConnectSuccess read fOnReconnectSuccess write fOnReconnectSuccess;
     property OnReconnectFail: TOnConnectFail read fOnReconnectFail write fOnReconnectFail;
     property OnBindingSuccess: TOnBindingSuccess read fOnBindingSuccess write fOnBindingSuccess;
     property OnBindingFail: TOnBindingFail read fOnBindingFail write fOnBindingFail;
     property OnReloginSuccess: TOnLoginSuccess read fOnReloginSuccess write fOnReloginSuccess;
     property OnReloginFail: TOnLoginFail read fOnReloginFail write fOnReloginFail;

  end;
此帖子包含附件:
PNG 图像
大小:7.0K
----------------------------------------------
樵夫的大马甲
作者:
男 luxiaoan (luxiaoan) ★☆☆☆☆ -
普通会员
2017/6/7 9:54:44
17楼: RO SDK 用HTTP
----------------------------------------------
-
作者:
男 zhangpuqing (pupu) ★☆☆☆☆ -
普通会员
2017/6/8 11:16:16
18楼: 楼主,我们加过QQ的.
另外我也比较赞同不长连接的思路,心跳包只是用来好看的,没啥实用价格.
而datasnap的长处或者说进步或者说新特性就是加入了对json的支持.很好用的哟.
----------------------------------------------
-
作者:
女 xingyunmm (xingyunmm) ★☆☆☆☆ -
普通会员
2017/7/3 17:35:54
19楼: 我有永不过期版RemObjects SDK 9.0.97.1245可以用在手机上做三层有人要不?
此帖子包含附件:
JPEG 图像
大小:95.5K
----------------------------------------------
-
作者:
男 ccxpts (渔夫) ★☆☆☆☆ -
普通会员
2017/7/3 21:04:16
20楼: 我一直用datasnap短连接,解决了以前和楼主长链接时出现的相同问题,效率差不多
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行89.84375毫秒 RSS