php+ajax 简易即时聊天室

github的地址是:https://github.com/likangjun/chat
demo: http://demo.likangjun.com/chat

这里是用MySQLtxt文件来保存的聊天记录,然后用js去不断的请求聊天内容展现到页面上而达到了即时的效果,这里也可以用redis这种nosql。之前还在网上看到过一个PHP+Swoole扩展的即时聊天项目,地址是https://github.com/matyhtf/php-webim ,也值得去学习学习

先看下文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
chat

├─ ajax.php

├─ chat.php

├─ conn.inc

├─ css

│ ├─ main.css

│ └─ style.css

├─ get.php

├─ image

│ ├─ bg.jpg

│ ├─ close.png

│ ├─ logo.jpg

│ └─ user.jpg

├─ index.php

├─ jquery-1.6.min.js

├─ log

│ └─ 20161026.txt

├─ login.php

├─ logout.php

└─ README.md

log是聊天记录存放目录

conn是用来链接数据库的

indexloginlogout是登录,退出这些页面

ajax是用于接受信息并储存在数据库或文件

最主要的还是chat.phpget.php

chat是聊天室页面,用ajax不断的请求get.php获得聊天内容并展示
get.php里把第一次请求时的聊天条数和第一次以后的聊天条数作对比,然后用死循环去不断查询数据库或者读本地文件获取聊天信息返回给chat.php,从而形成了即时聊天

这个只是一个简单粗暴的方法,性能和体验上还达不到要求,后续也将会去学习研究更好的解决方案