在线聊天室

PHP在线聊天室

为了激发学习热情,提供多元化的交流平台。在学习ajax教程视频的时候,视频讲解了一个小型的案例,在线聊天室。认为这个小案例比较有意思,就把玩了好一会。

对聊天室进行改造,增加聊天室的功能,开发有意思的功能,这样用户聊天,就更加有趣了。

我先把聊天室展示给大家看看,接下来,我会细讲解聊天室的技术。

聊天室地址:http://39.105.0.128/talk/

聊天室源码:https://pan.baidu.com/s/1V4MBKUGC0f1Un8jGasmpWg

 

 

聊天室目录结构:

在线聊天室

 

  • 首页(客户端页面)

在线聊天室

 

主要实现技术:

在线聊天室

 

及时显示大家的聊天信息,页面在不刷新的情况下把聊天信息给追加进来。利用反向推技术,每间隔2s就去服务器查看是否有新的聊天信息,有则请求回来并显示。

 

使用JavaScript的setInterval()方法配合Ajax轮询

在线聊天室

发送消息的ajax

 

获取form表格的信息

创建FormData()对象

创建ajax对象xhr,XMLHttpRequest()

给ajax设置事件,onreadystatechange

创建新的ajax请求(并设置请求地址),open()

发送请求,send()

 

在线聊天室

插入方法

 

在线聊天室

在底部执行插入,设置触发事件

在线聊天室

通过按键执行sendmsg()方法

 

  • 发送消息

在线聊天室

获取用户IP,查询用户IP,拼接用户名,写入cookie

 

在线聊天室

文本域信息处理

 

在线聊天室

编写预处理语句

 

在线聊天室

设置注册cookie,register,

设置记录间隔cookie,record

判断,执行预处理,关闭预处理,关闭连接

 

 

 

  • 查询消息

在线聊天室

获取最大ID

 

获取来源,首页showmessage()方法内

在线聊天室

 

在线聊天室

查询数据库预处理语句

 

 

 

 

 

  • 配置文件

 

在线聊天室

连接数据库

设置字符集

 

  • 建表语句

在线聊天室

Navicat设计表格

在线聊天室

Navicat转储表结构

 

在线聊天室

导出修改后的sql语句