当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:使用PHP服务器脚本语言,采用Apache服务器软件搭建B/S结构,将单条聊天内容以结构化数据库表对应的单条记录形式存储于MySQL数据库,再通过Ajax技术使客户端与服务器之间异步发送和接收信息,从而实现无刷新信息交互。该系统的即时聊天系统界面简洁,功能专一,可使用户之间的通讯与信息交流更加便捷。

引 言

互联网技术飞速发展,Instant Messaging(即时通讯)的出现,通过互联网技术,革新了当代人信息交流的方式,给人们生活带来诸多便利。当前,在“互联网 +”的国家发展战略下, 许多传统服务行业都亟待与互联网融合,服务必然需要一个互联网沟通平台,网页即时聊天系统便应运而生,该系统界面简洁,功能专一,不需要下载软件即可实现信息交流,让信息交流更加便捷。

1 系统设计

1.1 系统整体架构设计

系统采用B/S 模式开发,具有三层结构,具体如图 1 所示。其中,表现层主要是提供交互的界面,由HTML 完成,业务逻辑和数据访问层通过PHP 和MySQL 组合开发,它们是当今较为流行的开源技术,便于使用,运行速度快,功能强大, 并且免费,非常适合Web 开发 [1-3] ;业务逻辑层则通过 PHP 写出收发信息和添删处理逻辑 ;数据库访问层通过表的结构, 写出相应 PHP 服务类,然后通过PHP 的MySQL 接口来实现数据的增删改查。

基于PHP的网页即时聊天系统的设计与实现


1.2 系统数据库设计 

系统具有发送信息,添加删除好友功能,相应的有 3 张表, 其中表 1为用户表,表 2 为信息表,好友关系表的具体字段设 置见表 3 所列。 

2 系统核心功能实现 

2.1 验证功能 

系统界面是通过 HTML 完成,当用户写入用户名和密码 时,通过 get 方式向服务器发送请求,服务器验证页面接收到 用户名和密码,通过连接数据库,将接收到的用户名和密码与 数据库中用户表的记录进行逐行比对,如果与某一行完全匹 配,则跳转到聊天界面,否则跳转到注册界面。图 2 所示是 其验证功能流程图。如果是第一次登陆,生成 session,在服 务器保存用户信息。

基于PHP的网页即时聊天系统的设计与实现



2.2 发送信息功能

当用户点击发送信息按钮时,浏览器向服务器发送 Ajax 请求,服务器中的处理收发信息页面接收来自 Ajax 的请求信 息,其中包括 session 里面的用户信息,接收人信息,以及发 送的内容,并将这些信息存入信息表中,其中 time 字段用 now ()函数来代替,is_get 字段不作为字段写入,默认为 0。图 3所示是其发送信息功能流程图。

基于PHP的网页即时聊天系统的设计与实现

2.3 接收信息功能 当客户端处于用户登录状态,并且处于聊天界面时,浏 览器定时向服务器发送获取信息的请求,通过 js 的 window. setInterval()方法设定时间,本次设定为 5 000,即为 5 秒, 此时浏览器会间隔 5 秒向服务器发送获取信息的请求,当服务 器接收到浏览器的请求后,开始连接数据库,并通过用户信息, 在数据库的信息表中查找接收人是当前用户的记录,同时 is_ get 字段的值必须为 0,每取出一条,将该记录中的 is_get 的 值置 1,在读取之后,通过 AIAX 回调函数,使用 DOM 将信 息更新到聊天界面 [4],其中每条信息都是拼接返回,避免覆 盖上一条信息。 

接收信息功能流程图如图 4 所示。

基于PHP的网页即时聊天系统的设计与实现


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 引 擎的信息更新到浏览器的聊天窗口,此过程中,浏览器没有执 行刷新。

基于PHP的网页即时聊天系统的设计与实现


3 结 语

此聊天系统使用 WAMP 开发环境,基于 B/S 三层结构 开发完成。三层结构很好地将业务逻辑和界面分开,便于后 期维护和拓展。收发信息通过 Ajax 引擎完成,使聊天界面无 刷新更新信息。服务器软件和数据库选用 Apache 和 MySQL, 加上 PHP 服务器脚本程序,代码简洁。实践证明,系统整体 运行良好,无漏接漏发信息。当前传统服务行业发展的大趋 势是与互联网融合,网页即时聊天系统,轻量级聊天,功能 专一,无需下载软件,通过浏览器即可完成信息交流,网页即 时聊天系统有着不错的应用环境和广大的市场前景。




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭