我是靠谱客的博主 唠叨火,最近开发中收集的这篇文章主要介绍http连接 如何创建长连接,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

http的层面上来说,没有一个入参,是用来指定该http连接为长连接的。

长连接就是一个普通的http连接。只是因为程序员,没有立即调用该连接的close()方法。

而是等不需要该连接的时候,才close()该连接。

所以,这个连接,就叫做长连接。


长连接必须使用tcp协议。



http连接,是建立在tcp协议的基础上的。



http中,其实没有长连接这样的类型。

保持一个tcp连接是长连接。完全是通过程序员手动来控制的。


如果程序员,想让一个http连接,比如该连接叫A,让A成为一个长连接。

那么,就不调用该连接的close()方法。

直到,不再需要A连接的时候,才关闭该连接。

那么,A就叫做一个长连接。


            //定时器的超时响应函数            
            /*
            服务端每隔15秒发一次心跳包
            //长连接请求发出后,该定时器设定为45秒后触发
            //下面槽的作用,就是为了检测m_bRecvHeartbeat的值,即客户端是否收到了服务端发过来的心跳包

            */
            void SimpleHttp::OnOutTimer()
            {
                //定时器超时了
                m_bOutTime = true;
                if(m_Mode != HTTP_KEEPALIVE)//标识该连接,是A。那么,程序员在关闭A连接的时候,就需要检测心跳包。
                {
                    m_OutTimer->stop();
                    m_NetworkReply->close();
                }
                else
                {
                    //http是长连接
                    if(!m_bRecvHeartbeat)  //心跳包停止了
                    {
                        m_OutTimer->stop();
                        m_AutoBreakOutTimer->stop();
                    
                        m_NetworkReply->close();//没有收到心跳包,关闭http连接
                    }
                    else
                    {
                        //接收到了服务端发过来的心跳包,那么不关闭http连接
                        m_bRecvHeartbeat = false;

                    }
                }
            }

最后

以上就是唠叨火为你收集整理的http连接 如何创建长连接的全部内容,希望文章能够帮你解决http连接 如何创建长连接所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部