手机版

基于javascript、ajax、memcache和PHP的简单在线聊天室

时间:2021-10-14 来源:互联网 编辑:宝哥软件园 浏览:

在线聊天室是人们相互交流的网络平台。随着越来越多新技术的发明和成熟应用,在线聊天室也使用了各种技术。我想简单总结一下这篇文章。

首先来说说前台技术。当然最新的是基于HTML5的websocket,实现了浏览器和服务器的全双工通信。WebSocket通信协议在2011年被IETF定义为RFC 6455,WebSocketAPI被定义为W3C。在WebSocket API中,浏览器和服务器只需要做一个握手,然后在浏览器和服务器之间形成一个快速通道。数据可以在它们之间直接传输。但是Websocket是HTML5的一个API,目前很多浏览器还不支持,所以这个方法现在还没有广泛使用。第二个是ajax,它使用轮询方法每隔一段时间从服务器下载一次数据,并检查数据是否更新。它的优点是异步请求处理(也可以设置同步),不会阻塞用户的其他操作。其缺点是不间断轮询不仅消耗带宽,而且占用过多的终端和服务器资源。而且由于ajax轮询是有时间间隔的,得到的消息不是实时的,因为不是由消息触发的,ajax的效率几乎是最低的。第三种是基于服务器的推送技术(comet),叫做push,但实际上是伪push。原理是在终端和服务器之间建立一个长连接,前台通过判断这个长连接的内容是否发生了变化来获取内容。它的优点是占用资源少,实时性好。它确实需要服务器的特殊支持,并且占用连接很长时间。现在越来越多的服务采用了这项技术。

在后台,聊天室是高IO应用,数据库可能是最大的瓶颈。聊天的特点是短信多,类似微博。此外,它是一个多用户系统。当用户达到一个数量级时,如果使用Mysql等关系数据库,查询压力应该会很大。如果没有特殊要求,我个人认为聊天记录不需要永久存储,那么memcache、redis等基于内存的存储系统可以发挥作用。下面是一个基于ajax php memcache的简单在线聊天室。

在这个聊天室中,所有的聊天记录都存储在memcache中,聊天记录的最大id用cid存储,聊天记录用msgcid存储。对于插入的每条记录,cid将增加1。通过ajax获取json格式的数据。因为memcache是基于内存的,所以整个系统运行非常快。以下是系统的源代码。整个系统只有两个文件,加起来不到10KB。

我们下载。

https://github.com/hitoy/online-chatroom

系统要求:1。安装了memcache2,php中安装了memcache3扩展,以及支持Javascript和ajax的现代浏览器。

版权声明:基于javascript、ajax、memcache和PHP的简单在线聊天室是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。