|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2017/6/5 11:57:08 |
标题: |
重金找大神解决,DATASNAP使用过程中掉线后重新连结的问题 |
浏览:1865 |
|
加入我的收藏 |
楼主: |
重金找大神解决,DATASNAP使用过程中掉线后重新连结的问题,自己开发的一个软件,因为要使用外网,外网可能掉线,掉线了,数据就无法保存了,现找大神解决这个问题,付费解决,有意的加QQ972370901
----------------------------------------------
- |
作者: |
|
2017/6/5 12:22:28 |
1楼: |
用心跳
----------------------------------------------
-
|
作者: |
|
2017/6/5 13:23:45 |
2楼: |
在做你的操作之前,判断是否掉线。如果 掉线conect一下就行。就是比较麻烦。。
----------------------------------------------
山外青山楼外楼,能人背后有能人弄..
|
作者: |
|
2017/6/5 13:47:27 |
3楼: |
你还没解决呀.出多少钱.
----------------------------------------------
-
|
作者: |
|
2017/6/5 18:02:43 |
4楼: |
哥们,你收多少钱
----------------------------------------------
-
|
作者: |
|
2017/6/5 18:03:13 |
5楼: |
加QQ聊吧
----------------------------------------------
-
|
作者: |
|
2017/6/5 21:10:58 |
6楼: |
我也一直在思考这个问题,为什么这么多年了,TSQLConnection都不增加一个心跳包的功能;
----------------------------------------------
-
|
作者: |
|
2017/6/6 9:00:15 |
7楼: |
说明不重视还是外国网络环境好。。。
----------------------------------------------
山外青山楼外楼,能人背后有能人弄..
|
作者: |
|
2017/6/6 9:25:46 |
8楼: |
不要保持长连接,用完就释放ServerMethodsClient,关闭Sqlconnection, 需要用的时候创建ServerMethodsClient,打开 Sqlconnection。再ServerMethodsClient.Create(Sqlconnection.DBXConnection) 不就可以?
----------------------------------------------
-只会复制粘贴!
|
作者: |
|
2017/6/6 9:32:06 |
9楼: |
使用 http 协议 webservice rest 等接口。不会有这些问题吧。 我从来不用datasanp 只用 RO SDK 的 http 接口。无法体会这种问题。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2017/6/6 11:13:42 |
10楼: |
对建议走http
----------------------------------------------
-
|
作者: |
|
2017/6/6 13:55:17 |
11楼: |
datasnap在互联网上是通过HTTP来连接,一旦断开后服务器会出现假连接。 我当时也是被这个问题困扰了很久,后面用在服务器端加入心跳检测,解决了部分问题,但也不能完全解决,偶尔还是会断。
楼主可搜索下“心跳包”的关键字,还是有很多资料的。
不过现在都建议使用IOCP了,论坛里已经有牛人做出跨平台框架,你可试试看。
----------------------------------------------
喜欢Delphi,关注Delphi,愿和广大爱好者交朋友。
|
作者: |
|
2017/6/6 15:28:03 |
12楼: |
我怎么有印象从哪个版本开始(XE4?),DataSnap已经增加了心跳包(KeepAlive)的功能了啊。
----------------------------------------------
-
|
作者: |
|
2017/6/6 15:35:51 |
13楼: |
http 模式不可能有什么当前在线连接了。都是不在线的。 只有最近访问。 http 模式不需要心跳包。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2017/6/6 22:08:36 |
14楼: |
用连接池管理连接,没有必要实时地连接到服务器数据库!
----------------------------------------------
Everyone will to do best!
|
作者: |
|
2017/6/6 23:31:52 |
15楼: |
现在的HTTP也走长连接的路线了,REST的回调,WEBSOCKET这些都是用长连接的实例;
----------------------------------------------
-
|
作者: |
|
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;
此帖子包含附件:
大小:7.0K |
----------------------------------------------
樵夫的大马甲
|
作者: |
|
2017/6/7 9:54:44 |
17楼: |
RO SDK 用HTTP
----------------------------------------------
-
|
作者: |
|
2017/6/8 11:16:16 |
18楼: |
楼主,我们加过QQ的. 另外我也比较赞同不长连接的思路,心跳包只是用来好看的,没啥实用价格. 而datasnap的长处或者说进步或者说新特性就是加入了对json的支持.很好用的哟.
----------------------------------------------
-
|
作者: |
|
2017/7/3 17:35:54 |
19楼: |
我有永不过期版RemObjects SDK 9.0.97.1245可以用在手机上做三层有人要不?
此帖子包含附件:
大小:95.5K |
----------------------------------------------
-
|
作者: |
|
2017/7/3 21:04:16 |
20楼: |
我一直用datasnap短连接,解决了以前和楼主长链接时出现的相同问题,效率差不多
----------------------------------------------
-
|
|