基于PHP的网页即时聊天系统的设计与实现
扫描二维码
随时随地手机看文章
引 言
互联网技术飞速发展,Instant Messaging(即时通讯)的出现,通过互联网技术,革新了当代人信息交流的方式,给人们生活带来诸多便利。当前,在“互联网 +”的国家发展战略下, 许多传统服务行业都亟待与互联网融合,服务必然需要一个互联网沟通平台,网页即时聊天系统便应运而生,该系统界面简洁,功能专一,不需要下载软件即可实现信息交流,让信息交流更加便捷。
1 系统设计
1.1 系统整体架构设计
系统采用B/S 模式开发,具有三层结构,具体如图 1 所示。其中,表现层主要是提供交互的界面,由HTML 完成,业务逻辑和数据访问层通过PHP 和MySQL 组合开发,它们是当今较为流行的开源技术,便于使用,运行速度快,功能强大, 并且免费,非常适合Web 开发 [1-3] ;业务逻辑层则通过 PHP 写出收发信息和添删处理逻辑 ;数据库访问层通过表的结构, 写出相应 PHP 服务类,然后通过PHP 的MySQL 接口来实现数据的增删改查。
1.2 系统数据库设计
系统具有发送信息,添加删除好友功能,相应的有 3 张表, 其中表 1为用户表,表 2 为信息表,好友关系表的具体字段设 置见表 3 所列。
2 系统核心功能实现
2.1 验证功能
系统界面是通过 HTML 完成,当用户写入用户名和密码 时,通过 get 方式向服务器发送请求,服务器验证页面接收到 用户名和密码,通过连接数据库,将接收到的用户名和密码与 数据库中用户表的记录进行逐行比对,如果与某一行完全匹 配,则跳转到聊天界面,否则跳转到注册界面。图 2 所示是 其验证功能流程图。如果是第一次登陆,生成 session,在服 务器保存用户信息。
2.2 发送信息功能
当用户点击发送信息按钮时,浏览器向服务器发送 Ajax 请求,服务器中的处理收发信息页面接收来自 Ajax 的请求信 息,其中包括 session 里面的用户信息,接收人信息,以及发 送的内容,并将这些信息存入信息表中,其中 time 字段用 now ()函数来代替,is_get 字段不作为字段写入,默认为 0。图 3所示是其发送信息功能流程图。
2.3 接收信息功能 当客户端处于用户登录状态,并且处于聊天界面时,浏 览器定时向服务器发送获取信息的请求,通过 js 的 window. setInterval()方法设定时间,本次设定为 5 000,即为 5 秒, 此时浏览器会间隔 5 秒向服务器发送获取信息的请求,当服务 器接收到浏览器的请求后,开始连接数据库,并通过用户信息, 在数据库的信息表中查找接收人是当前用户的记录,同时 is_ get 字段的值必须为 0,每取出一条,将该记录中的 is_get 的 值置 1,在读取之后,通过 AIAX 回调函数,使用 DOM 将信 息更新到聊天界面 [4],其中每条信息都是拼接返回,避免覆 盖上一条信息。
接收信息功能流程图如图 4 所示。
2.4 Ajax Ajax
是一种用于给用户更好体验,交互性更强的 Web 应 用程序技术,Ajax 的本质是异步的 Javascript 代码配合 XML 用于 Web 交互,使用 Ajax 使客户端接收信息,独立于网页, 不需要刷新整个网页就可以得到来自服务器的交互信息 [5-8]。 它不是新技术,但是能够给 Web 体验锦上添花 [9]。即时聊天 系统需要刷新页面才可以收到信息,这对于用户是不可接受的, 并且极大地降低了用户体验,运用 Ajax 是此系统的核心解决 方案。
如图 5 所示,在聊天窗口点击发送信息按钮时,浏览器 将请求转移到 Ajax 引擎,由 Ajax 引擎发送请求,即实例化后 的 XMLHttpRequest 对象 [10],服务器信息处理页面收到 Ajax 引擎的请求到 MySQL 数据库信息表中取出对应信息并转化为 XML 形式,返回给 Ajax 引擎,通过 DOM 将返回到 Ajax 引 擎的信息更新到浏览器的聊天窗口,此过程中,浏览器没有执 行刷新。
3 结 语
此聊天系统使用 WAMP 开发环境,基于 B/S 三层结构 开发完成。三层结构很好地将业务逻辑和界面分开,便于后 期维护和拓展。收发信息通过 Ajax 引擎完成,使聊天界面无 刷新更新信息。服务器软件和数据库选用 Apache 和 MySQL, 加上 PHP 服务器脚本程序,代码简洁。实践证明,系统整体 运行良好,无漏接漏发信息。当前传统服务行业发展的大趋 势是与互联网融合,网页即时聊天系统,轻量级聊天,功能 专一,无需下载软件,通过浏览器即可完成信息交流,网页即 时聊天系统有着不错的应用环境和广大的市场前景。