DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sprblck
今日帖子: 13
在线用户: 19
导航: 论坛 -> Web应用开发 斑竹:bodies  
作者:
男 cd_fsy2000 (神州行) ★☆☆☆☆ -
盒子活跃会员
2020/3/31 12:05:14
标题:
rtc做的http服务,怎么支持长连接 浏览:2095
加入我的收藏
楼主: xe10.1+rtc9.25做了个http服务,响应一个硬件的http请求,结果老是断线,硬件设置的是3秒的心跳,我这边日志显示,回发数据后客户端就断线了,我自己在浏览器上和自己做的客户端没有问题?最后硬件厂家说我的不是长连接,请问怎么做长连接?
此帖子包含附件:
PNG 图像
大小:7.8K
----------------------------------------------
-
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2020/3/31 12:36:42
1楼: http就是短连接,有什么问题嘛?
----------------------------------------------
--
作者:
男 cd_fsy2000 (神州行) ★☆☆☆☆ -
盒子活跃会员
2020/3/31 12:51:56
2楼: 不是的,http本质上是tcp连接,分为长连接和短连接,可以百度了解一下,呵呵
----------------------------------------------
-
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2020/3/31 13:18:48
3楼: 那既然你都这么认为了还有什么好说的。
----------------------------------------------
--
作者:
男 lsuper (lsuper) ★☆☆☆☆ -
盒子活跃会员
2020/3/31 16:14:14
4楼: 1、抓包,看 http 1.1 Keep-alive 设置等是否 ok;2、或者直接基于 websocket
----------------------------------------------
-
作者:
男 cd_fsy2000 (神州行) ★☆☆☆☆ -
盒子活跃会员
2020/4/1 11:44:28
5楼: 现在的问题是,客户端发过来的header中明确指出:connection:keep-alive意思就长连接了,那么我的服务端用rtc,应该怎么设置?我找了半天,在rtchttpserver控件里面都没有找到相应的属性,

事情这样的,我们做了个硬件的接口,对方是http发送数据,3秒一次心跳,使用对方的服务程序就没有问题,我自己做的就每次回发数据后,就断开了,硬件厂家说我的不是长连接,同一台电脑上测试的,那就说明rtc做的http服务没有设置keep-alive,但是我又不知道怎么设置,找了半天也没有找到,郁闷了...
----------------------------------------------
-
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2020/4/1 11:54:24
6楼: datasnap rest使用http/https就是短连接,datasnap rest稳定可靠,建议使用
----------------------------------------------
-
作者:
男 cd_fsy2000 (神州行) ★☆☆☆☆ -
盒子活跃会员
2020/4/1 12:05:04
7楼: 楼上的哥们,谢谢了
要长连接才行,呵呵
----------------------------------------------
-
作者:
男 doorkey (DoorKey) ★☆☆☆☆ -
盒子活跃会员
2020/4/2 13:16:42
8楼: 使用HTTP.SYS吧
----------------------------------------------
QQ: 9717005 我的Blog:http://www.cnblogs.com/anydelphi/
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2020/4/2 15:41:36
9楼: rtc默认就是长连接的,检查下TRtcHttpServer.Timeout 属性的 AfterDataSent 等几个参数是不设置了超时时间。
最好贴点代码, 要不我们只能猜。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 hnxxcxg (咏南中间件) ★☆☆☆☆ -
盒子活跃会员
2020/4/3 11:21:14
10楼: WEBSOCKET是HTTP长连接
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
作者:
男 jackalan (nVicen) ★☆☆☆☆ -
盒子活跃会员
2020/4/4 15:38:26
11楼: HTTP 1.0是短连接,1.1默认是长连接。

idHttp := TidHttp.Create(nil);
idHttp.ConnectTimeout     := 1000;
idHttp.ReadTimeout        := 1000;
idHTTP.HandleRedirects    := True;  // HTTP/1.1
idHttp.Request.Connection := 'keep-alive';//Setkeep-alive
idHttp.ProtocolVersion    := pv1_1;//HTTP 1.1
idHttp.HTTPOptions        := idHttp.HTTPOptions+[hoKeepOrigProtocol];//关键

如果服务器支持长连接的话,返回的包里也会包含 keep-alive 标志。
----------------------------------------------
简单做人,认真做事。
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行74.21875毫秒 RSS