而且只要一段时间(比如60秒)没有数据传送,那这个映射会失效。所以,客户端必须每隔一段时间发送一个心跳包。
我的问题是:服务器发送给客户端的数据,是否也起到心跳包的作用?客户端一个心跳包不发,服务器向客户端每隔30秒发一个数据包,是否也能起到维持这种映射的作用?
5 个解决方案
#1
也可以的~~~
#2
可以 。
#3
可以维持,
长链接由客户端发心跳来维持比较常规
长链接由客户端发心跳来维持比较常规
#4
我的程序也是由客户端发送心跳包的。
但是,我们得尽可能的减轻网络的负担。比如:心跳包本来是30秒发送一次。可是在20秒后,客户端向服务器发送了一次数据。这次发送数据可以起到心跳包的作用。那么心跳包就不必按预定时间(也就是10秒后)发送了。可能重置它的时钟,在30秒后发送。
同样,服务器传来数据,这个既然能起到心跳包的作用,那也可以把心跳时钟重置一下,让它在30秒以后发送。这样可以减轻系统和网络的负担。
#5
个人观点,供参考
1.网络负担其实一样,客户端发给服务器和服务器发给客户端,带宽占用无差别;
2.服务器的地位比客户端重要的多,客户端一般来说压力都不会太大,反而是服务器资源要精打细算,要省着用。
作为通讯软件,发生中断需要重连处理都是最基本的,这些是客户端的本分工作
#1
也可以的~~~
#2
可以 。
#3
可以维持,
长链接由客户端发心跳来维持比较常规
长链接由客户端发心跳来维持比较常规
#4
可以维持,
长链接由客户端发心跳来维持比较常规
我的程序也是由客户端发送心跳包的。
但是,我们得尽可能的减轻网络的负担。比如:心跳包本来是30秒发送一次。可是在20秒后,客户端向服务器发送了一次数据。这次发送数据可以起到心跳包的作用。那么心跳包就不必按预定时间(也就是10秒后)发送了。可能重置它的时钟,在30秒后发送。
同样,服务器传来数据,这个既然能起到心跳包的作用,那也可以把心跳时钟重置一下,让它在30秒以后发送。这样可以减轻系统和网络的负担。
#5
可以维持,
长链接由客户端发心跳来维持比较常规
我的程序也是由客户端发送心跳包的。
但是,我们得尽可能的减轻网络的负担。比如:心跳包本来是30秒发送一次。可是在20秒后,客户端向服务器发送了一次数据。这次发送数据可以起到心跳包的作用。那么心跳包就不必按预定时间(也就是10秒后)发送了。可能重置它的时钟,在30秒后发送。
同样,服务器传来数据,这个既然能起到心跳包的作用,那也可以把心跳时钟重置一下,让它在30秒以后发送。这样可以减轻系统和网络的负担。
个人观点,供参考
1.网络负担其实一样,客户端发给服务器和服务器发给客户端,带宽占用无差别;
2.服务器的地位比客户端重要的多,客户端一般来说压力都不会太大,反而是服务器资源要精打细算,要省着用。
作为通讯软件,发生中断需要重连处理都是最基本的,这些是客户端的本分工作