虽然是求助 ,先总结下我的想法web聊天 页面自动刷新已经被废弃了AJAX定时取 实现了页面无刷新 但是还是每几秒到服务器取数据,服务器数据一更新不能及时 ‘推’到客户端前一阵看到了个词 叫comet 了解了一下 实现方法之一是 AJAX发送请求 服务器端脚本做‘死’循环,每次循环睡一下,直到满足条件(新聊天记录)才返回 ,返回后客户端处理数据,然后再连接到服务器我想问的是 这样做有什么好处? 实现了服务器推? 数据取回 处理 这段时间,服务器端数据可能会更新几次 这就是说,这种‘推’ 没能实现服务器端每次数据更新都推到客户端在做一款web游戏的聊天 希望高手指点下 怎么去实现比较好服务器端的聊天数据 怎么存储 频繁更新 用数据库好 还是用文本 有没有可能实现服务器端不保存记录,每次把数据'推'到客户端保存
PHPER都在哪混呢?
session结束后保存到数据库。
CSDN的即时消息,均是推技术
可以实现的你google下
就算不档,ajax的优点就一点也没用了。要我做,其实很简单,首先肯定是使用数据库,每条发言都有个递增的id,ajax只要把本机上的最后的那条发言的id发给服务器,服务器把大于这个id的发言发给客户端就可以了。如果ajax发空id就把最新的几条发言发过去。至于“实现了服务器推”。那是实现不了的,因为网页服务器是不能主动和客户端通信的,只有在客户端有请求比如ajax请求,服务器才会进行响应。要实现这个方法除非是应用程序,或客户端使用控件。
网上随便搜索了一段代码,然后结合数据库就完事了。客户端1秒刷一次,服务器端15秒更新一次数据库,中间的内容全部用缓存保存起来。因为.net提供缓存,所以比较容易实现。我看过一个php聊天系统,它是用文件作为缓存的。速度稍微有点慢,但做的很好。
前一段时间 我主要是想把聊天记录 直接推到客户端 服务器不保存聊天记录 想歪了 所以卡住
现在用memcache缓存数据 实现就简单多了谢谢各位,
最新相关问题地址:
http://topic.csdn.net/u/20080915/10/cb4d8c17-0265-4ef3-b86e-6bc984bd22bb.html?seed=607442903
长连接推也是可以的,网上搜搜吧普通聊天用ajax可以,建一动态聊天室,用完就删只能说这么多了
百变不离其中,客户端 Request 一个,服务端做循环,用sleep来释放cpu,所以不会有占用很严重的cpu的情况。有数据时就返回,(如果这个时候有新数据的时候,会丢失么,当然不会了,下次的Request 可以返回。)客户端收到数据库这个连接就断开。这个就是所谓的 polling 。然后客户端再发起一个Request ,循环下去。说说lz说的ajax方式:
有个例子:
http://kerphi.zeitoun.net/articles/comet_and_php/comet-ajax/
另:如果说这个 长连接用别的方式的话,比如 php socket ,或者java 或者 erlang ,那就不是有太多问题了。
楼主对 comet 实现的方式,(服务端)比较局限。另外,如果真有大量链接,完全可以考虑上述方式实现,目前 java , erlang 都有比较成熟的(服务端)实现方式。