热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

gin框架长连接_PHP实现长连接mickelfeng的个人空间OSCHINA中文开源技术交流社区...

什么是“长连接”和“短连接”?解释1所谓长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差,所谓短连接指建立SOCKET连

什么是“长连接”和“短连接”?

解释1

所谓长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差,

所谓短连接指建立SOCKET连接后发送后接收完数据后马上断开连接,一般银行都使用短连接

解释2

长连接就是指在基于tcp的通讯中,一直保持连接,不管当前是否发送或者接收数据。

而短连接就是只有在有数据传输的时候才进行连接,客户-服务器通信/传输数据完毕就关闭连接。

解释3

长连接和短连接这个概念好像只有移动的CMPP协议中提到了,其他的地方没有看到过。

通信方式

各网元之间共有两种连接方式:长连接和短连接。所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需 要双方发检测包以维持此连接。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对 CMPP消息的发送。

现阶段,要求ISMG之间必须采用长连接的通信方式,建议SP与ISMG之间采用长连接的通信方式。

解释4

短连接:比如http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。

长连接:有些服务需要长时间连接到服务器,比如CMPP,一般需要自己做在线维持。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lee576/archive/2008/11/07/3245167.aspx

==========================================

http://www.zeevin.cn/?p=126

php的长连接是实现php即时通信的一个不错的选择,下面的代码在firefox中可以显示出效果,在IE中还要改进。

set_time_limit(0);

header(”Connection: Keep-Alive”);

header(”Proxy-Connection: Keep-Alive”);

for($i&#61;0; $i<1000; $i&#43;&#43;) {

print ‘fuck man!’.$i.’
’;

flush();

sleep(3);

clearstatcache();

}

?>

&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

Content-type:multipart/x-mixed-replace;boundary&#61;ThisRandomString

这样一个头

&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

ajax篇,WEB 长连接

大家都知道WEB是片段型代码.那么不能服务端控制客户段.

那么我们将这项技术进行研究吧.

web服务器通知客户端.

方案1.不断刷新页面.获得是否进行更新.但由于WEB是片段型代码.不能进行长连接

优点:即使跟新.

缺点:整体刷新会产生闪烁.异步刷新.服务器产生大量数据.

方案2.整体代码开始.首先进行一次AJAX长连接.

优点:可以更好的产生操作.

缺点产生难度比较大

-------------------------------------------------------------------------

HTTP/1.1 200 OK

Date: Sun, 21 Sep 2008 04:53:45 GMT

Server: Apache/2.2.3 (Debian) PHP/5.2.6-0.dotdeb.1 with Suhosin-Patch

X-Powered-By: PHP/5.2.6-0.dotdeb.1

Content-Length: 179

Keep-Alive: timeout&#61;15, max&#61;90

Connection: Keep-Alive

Content-Type: text/html;charset&#61;utf-8

-------------------------------------------------------------------------

首先抓个包看下HTTP协议

然后自己写WEBSERVER

并且每次发送套接字.要头部必须得用上面的片段协议代码

Javascript ajax 只能对HTTP进行处理。

那么自己写个套接字程序.就基本可以实现需要的功能

Javascript

片段代码

--------------------------------------------------------------

var xmlhttp &#61; new ActiveXObject("Msxml2.XMLHTTP.5.0");//ie下的创建方式

function OpenService()

{

xmlhttp.open("POST","http://127.0.0.1:5550",true); //建立异步通信     xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset&#61;utf-8");

var m&#61;xmlhttp.send("标示号");

}

捕获onreadystatechange事件每次进行再次循环

setTimeout(OpenService(),100);

这样实际上已经可以进行长连接了

但这么做套接字.那得用标示号来区别.

WEBSERVER进行循环接收.

然后再查询数据

如果有数据发送HTTP协议,然后再把套接字发过去

js判断是否更新

如果更新 那么直接 EVAL();或者其他方案。

最近正在写WEBSERVER个人处理数据的软件。挺忙。对不起大家了

.下次带给大家的是JS挂马.

和其他的不同的地方是

反弹式的挂马.嘿嘿.一般管理员查不出来

因为属于安全代码.

就说到着.下次继续

&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

这种方式实际上是长连接的最简单实现。和cgi很类似。PHP实现&#xff1a;

主要是想演示一下几点&#xff1a;

set_time_limit(0);

这个用来保证长连接不会因为php请求超时而中断

ob_flush();

flush(); // used to send the echoed data to the client

这两句共同保证php会即时清空 缓冲并输出

等效于perl中的$|&#61;1

sleep(1);

延时1s.这个太重要了。

用于循环时释放cp

Javascript和VB 都没有这个功能。

相关源码&#xff1a;

header("Cache-Control: no-cache, must-revalidate");

header("Expires: Mon, 26 Jul 2008 05:00:00 GMT");

flush();

?>

Comet php backend

set_time_limit(0);

while(1) {

echo &#39;&#39;&#39;&#39;.time().&#39;&#39;&#39;&#39;;

ob_flush();

flush(); // used to send the echoed data to the client

sleep(1); // a little break to unload the server CPU

}

?>



推荐阅读
  • 本文探讨了如何利用 jQuery 的 JSONP 技术实现跨域调用外部 Web 服务。通过详细解析 JSONP 的工作原理及其在 jQuery 中的应用,本文提供了实用的代码示例和最佳实践,帮助开发者解决跨域请求中的常见问题。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • 在优化Nginx与PHP的高效配置过程中,许多教程提供的配置方法存在诸多问题或不良实践。本文将深入探讨这些常见错误,并详细介绍如何正确配置Nginx和PHP,以实现更高的性能和稳定性。我们将从Nginx配置文件的基本指令入手,逐步解析每个关键参数的最优设置,帮助读者理解其背后的原理和实际应用效果。 ... [详细]
  • 为开发者提供了一系列实用的参考网站和资源链接,包括HTML速查手册( 和 ),帮助开发者快速查找和学习相关技术知识。此外,还涵盖了其他重要的开发工具和文档,为编程工作提供全面支持。 ... [详细]
  • `chkconfig` 命令主要用于管理和查询系统服务在不同运行级别中的启动状态。该命令不仅能够更新服务的启动配置,还能检查特定服务的当前状态。通过 `chkconfig`,管理员可以轻松地控制服务在系统启动时的行为,确保关键服务正常运行,同时禁用不必要的服务以提高系统性能和安全性。本文将详细介绍 `chkconfig` 的各项参数及其使用方法,帮助读者更好地理解和应用这一强大的系统管理工具。 ... [详细]
  • 为了提升单位内部沟通效率,我们开发了一套飞秋软件与OA系统的消息接口服务系统。该系统能够将OA系统中的审批、通知等信息自动同步至飞秋平台,确保员工在使用飞秋进行日常沟通的同时,也能及时获取OA系统的各类重要信息,从而实现无缝对接,提高工作效率。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本指南详细介绍了如何在CentOS 6.6 64位系统上以root用户身份部署Tomcat 8服务器。系统环境为CentOS 6.6 64位,采用源码安装方式。所需软件为apache-tomcat-8.0.23.tar.gz,建议将软件下载至/root/opt目录。具体下载地址请参见官方资源。本指南涵盖了从环境准备到服务启动的完整步骤,适用于需要在该系统环境下搭建高性能Web应用服务器的技术人员。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
author-avatar
yangyue627595
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有