简单的,基于长连接的小例子
来源:互联网 发布:俄罗斯海军现状知乎 编辑:程序博客网 时间:2024/05/01 08:01
又要做一个聊天系统……想到之前一直用的ajax,每隔5秒啊啥的,就去服务器刷一下看看有没有新的聊天,相当的浪费资源……于是搜了下资料,网上倒是很多comet的东西,不过找半天给的例子怎么看都不胃口,有点看不下去……好吧,本来一直懒得再看的,今天终于不得不大规模百度+GOOGLE了……
看了半天,原来发现,竟然是这么简单……网上的文章太乱了,扯东扯西,扯得人不想看。
按自己的理解稍微说一下吧……
注:以下链接里的这篇也是长连接,用的不是ajax,而是动态添加script的方式。
ajax不可以跨域,而动态script可以
http://blog.csdn.net/guoerwei/archive/2011/06/10/6535389.aspx
1、跟客户端基本没啥关系,会ajax就差不多了,思路跟之前有些不同而已。
这就是a.html的内容上面这段js其实就是一个很普通的ajax
我用js传入了一个时间戳,表示本次读取的时间,发送到b.php去读。
与普通ajax聊天最大的区别其实就是在获取到聊天信息后,又去执行一次test();表示下一轮开始
2、服务器端用的PHP
非常短,只是一直死循环而已。
3、于是,访问a.html吧,用firebug看的话,在网络那一栏里有一个GET b.php?time=xxx一直在等待
每次文件test.txt被修改时,b.php就会返回给a.html最新的信息
当然,这仅仅只是实现了最基础的功能……具体要改进的还有非常多。
比如,JS里的时间戳目前取的是本地时间,实际上用户的电脑时间不一定准确,所以应该传入服务器端时间,以服务器端时间为准
比如,不用文本了,用memcached,redis啥的来提高效率
比如,用nginx的http_push_module来减轻服务器负担
具体的,等做完吧……
顺便,再次BS一下现在的各种采集……
自己写不出东西来,到处去扒,专扒问题,不扒答案。有代码的都把代码扒得七零八落,各种标点、空格被替换。最后结果,百度GOOGLE啥鸟的一个搜索下去,10篇8篇一样的……真他妹的!
- 简单的,基于长连接的小例子
- 简单的长连接
- HTTP长连接的例子
- 基于流模式长连接的简单实现
- 基于流模式长连接的简单实现
- 基于Ajax的长连接
- 简单的socket长连接
- 深入理解基于 HTTP 长连接的“服务器推”技术(Comet)附例子
- Comet 基于AJAX的HTTP长连接
- 基于iframe的HTTP长连接实现
- 基于socket的心跳长连接
- 基于Netty的服务端长连接
- 基于Proxy代理服务器的长连接方法
- 基于心跳的socket长连接
- 基于心跳的socket长连接
- 基于Netty的长连接客户端
- Netty实现长连接简单例子
- 简单的ajax小例子
- asp.net敏感词过滤(一)
- 进一步了解 微软认证的好处和需求
- 用Visio画UML 类结构图
- 对面试题赛马问题分析思路的质疑_欢迎拍砖
- 一步一个脚印学习WCF之二构建一个简单的WCF应用程序前必须掌握的WCF基础术语---契约(Contract)
- 简单的,基于长连接的小例子
- c runtime(CRT)
- Joomla单元管理
- 关于Myclipse和Jboss调试过程中内存溢出问题的解决
- Android多媒体学习十三:检索MediaStore中的Video和其对应的缩略图信息
- 一步一个脚印学习WCF之二构建一个简单的WCF应用程序前必须掌握的WCF基础术语---契约的名称与命名空间
- 设置foxmail通过ccproxy代理收发邮件
- 多项式相加问题
- ASP.NET MVC3 基础教程 – Web Pages 1.0