|
|
导航: |
论坛 -> Web应用开发
斑竹:bodies |
|
作者: |
|
2020/3/31 12:05:14 |
标题: |
rtc做的http服务,怎么支持长连接 |
浏览:2095 |
|
加入我的收藏 |
楼主: |
xe10.1+rtc9.25做了个http服务,响应一个硬件的http请求,结果老是断线,硬件设置的是3秒的心跳,我这边日志显示,回发数据后客户端就断线了,我自己在浏览器上和自己做的客户端没有问题?最后硬件厂家说我的不是长连接,请问怎么做长连接?
此帖子包含附件:
大小:7.8K |
----------------------------------------------
- |
作者: |
|
2020/3/31 12:36:42 |
1楼: |
http就是短连接,有什么问题嘛?
----------------------------------------------
--
|
作者: |
|
2020/3/31 12:51:56 |
2楼: |
不是的,http本质上是tcp连接,分为长连接和短连接,可以百度了解一下,呵呵
----------------------------------------------
-
|
作者: |
|
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
----------------------------------------------
-
|
作者: |
|
2020/4/1 11:44:28 |
5楼: |
现在的问题是,客户端发过来的header中明确指出:connection:keep-alive意思就长连接了,那么我的服务端用rtc,应该怎么设置?我找了半天,在rtchttpserver控件里面都没有找到相应的属性,
事情这样的,我们做了个硬件的接口,对方是http发送数据,3秒一次心跳,使用对方的服务程序就没有问题,我自己做的就每次回发数据后,就断开了,硬件厂家说我的不是长连接,同一台电脑上测试的,那就说明rtc做的http服务没有设置keep-alive,但是我又不知道怎么设置,找了半天也没有找到,郁闷了...
----------------------------------------------
-
|
作者: |
|
2020/4/1 11:54:24 |
6楼: |
datasnap rest使用http/https就是短连接,datasnap rest稳定可靠,建议使用
----------------------------------------------
-
|
作者: |
|
2020/4/1 12:05:04 |
7楼: |
楼上的哥们,谢谢了 要长连接才行,呵呵
----------------------------------------------
-
|
作者: |
|
2020/4/2 13:16:42 |
8楼: |
使用HTTP.SYS吧
----------------------------------------------
QQ: 9717005 我的Blog:http://www.cnblogs.com/anydelphi/
|
作者: |
|
2020/4/2 15:41:36 |
9楼: |
rtc默认就是长连接的,检查下TRtcHttpServer.Timeout 属性的 AfterDataSent 等几个参数是不设置了超时时间。 最好贴点代码, 要不我们只能猜。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
|
作者: |
|
2020/4/3 11:21:14 |
10楼: |
WEBSOCKET是HTTP长连接
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
|
作者: |
|
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 标志。
----------------------------------------------
简单做人,认真做事。
|
|