[100分]只想讨论一个架构的有关问题,大牛小牛尽管发言,见者有分

[100分]只想讨论一个架构的问题,大牛小牛尽管发言,见者有分!
先申明一下,我只是抛砖引玉,研究的不深入,项目经验不足。大家尽管发言

有一个项目需求,用http协议实现一个c/s的软件,要求是客户不能掉线或者有很好的重连机制。

请教各位,是不是要使用http长连接?有过这方面项目经验的人说说你们是怎么实现的?或者有什么开发包?前提是c/c++下的开发包
http协议 架构

------解决方案--------------------
HTTP 头里面有  Connection: Keep-Alive 就是长连接了.  HTTP 1.1 默认就是 Keep-Alive 的.
------解决方案--------------------

1 首先建立长连接啊,一段时间发送心跳确认是否在线(这个是本身带有的报活禁止) 

2 当几次心跳没有得到服务端的心跳确认后,就认为已经掉线,

3 则客户端关闭自链路重新向客户端发起链接,如此循环保持一直在线状态


------解决方案--------------------
引用:

1 首先建立长连接啊,一段时间发送心跳确认是否在线(这个是本身带有的报活禁止) 

2 当几次心跳没有得到服务端的心跳确认后,就认为已经掉线,

3 则客户端关闭自链路重新向客户端发起链接,如此循环保持一直在线状态




上面写错了几个字! [100分]只想讨论一个架构的有关问题,大牛小牛尽管发言,见者有分


1 首先建立长连接啊,一段时间发送心跳确认是否在线(这个是本身带有的保活机制) 

2 当几次心跳没有得到服务端的心跳确认后,就认为已经掉线,

3 则客户端认为已经关闭了此链路,重新向服务端发起链接,
  如此循环保持一直在线状态

------解决方案--------------------

HTTP本身就用一个session的概念,表达客户端和服务器端的逻辑连接存在即可。

不存在“掉线”只说啊,啥时候你听过说浏览器掉线了?你只听说过session过期了吧?

如果你说的是 服务器推技术的话,那么就忽略我上面说的,考虑Keep-Alive,但是这样的话,不如用TCP了。 
------解决方案--------------------
我自己的粗浅理解:
客户端一旦断线,服务端相应的socket上的recv马上就能返回错误信息啊。服务器怎么会不知道客户端断开了呢?
心跳包不是检测客户端断不断线,而是检测客户端长时间不收发信息,空占着资源,阻碍别人连接的(服务端的连接有限制)。
------解决方案--------------------
引用:
楼上几位大牛可能误解了我的意思,也可能我没说请

http如何有类似socket这种心跳包?需要在server端有这么一个机制判断client端是否在线,每隔一段时间发一个http包?这样在大连接数量的效率问题会不会有影响?


另外这种大链接数量的http的c/s结构应该如何设计?


看你的服务器要求和处理消息机制的,线程或者进程都是可以的!
------解决方案--------------------
要使用心跳包保持在线
------解决方案--------------------