读书人

[100分]只想讨论一个架构的有关问题

发布时间: 2013-08-14 14:27:55 作者: rapoo

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

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

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



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

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

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

[解决办法]

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

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

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

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


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


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



[解决办法]

[解决办法]
蛋疼的人,出蛋疼的需求,造成蛋疼的架构,蛋疼的架构,蛋疼的架构造成你现在蛋疼的苦逼。。。



目测lz在小公司,而且这个公司以前没做过网络方面的大型产品。
[解决办法]
蛋疼的人,出蛋疼的需求,造成蛋疼的架构,蛋疼的架构,造成你现蛋疼的苦逼。。。



目测lz在小公司,而且这个公司以前没做过网络方面的大型产品。
[解决办法]
来接分了,用http协议做cs软件,的确感觉怪怪的,如果不是web项目,何必呢,
[解决办法]
http如何有类似socket这种心跳包????
[解决办法]

[解决办法]
[100分]只想讨论一个架构的有关问题,大牛小牛尽管发言,见者有分目测楼主可以直接用TCP发HTTP格式数据。
------解决方案--------------------


干嘛非要用http协议,蛋疼的协议。用一些成熟的协议序列化反序列化库多好呀,比如protobuf,http协议既浪费网络资源,解析也比较麻烦。

读书人网 >C++

热点推荐