基于TCP的简易聊天室设计与实现
摘要:现代网络科技的逐渐成熟与发展,建议聊天室设计愈加完善,尤其是基于TCP的简易聊天室,实现程度更高。本文对TCP的概念展开分析,并根据简易聊天室的设计原理,对基于TCP的简易聊天室设计与实现的具体方式加以深入剖析,进一步推动我国网络通信产业的发展,并提升网络聊天室设计制作的整体质量。
关键词:TCP;IP;简易聊天室;设计;实现
聊天室作为一种网络虚拟空间,是实现网络通讯的一种重要方式。随着我国网络通讯事业的逐渐发展,聊天室应用也愈加广泛,并且对于现代互联网商业产业的发展起到了重要的推动作用。现阶段的网络聊天室在网络通信技术的发展支持下,也衍生出了视频类聊天室、文字类聊天室等等,并且根据网站的实际运营需求,聊天室的附加功能系统也愈加完善,而基于TCP的简易聊天室就是新时期网络聊天室设计实现的一种重要形式。
一、TCP与简易聊天室
TCP是Transmission Control Protocol的简称,是通信协议的一种,其本身的通信形式是以字节流动而实现的,属于连接的、可靠的传输层通信协议,在TCP的实际传输通信中,是以IETF的RFC793来定义完成的[1]。相较于其他网络通信协议,TCP更阿基使用多网络应用的分层协议层次结构的实际通信,可以实现不同计算机通信网络之间的有效连接并进行字节的流动传输,如图一所示。TCP的拥塞控制是以AIMD算法进行的,具有慢启动、拥塞避免、快速重传、快速恢复等四个部分,因此得到了业界人士的高度认可。而在TCP网络通过通信的连接终止环节,也需要四个分节来完成,其具体流程如图二所示。

图一 TCP网络通信协议通信层次结构示意图

图二 TCP连接终止四个分节流程示意图
而简易聊天室则是基于网络通信技术的一种虚拟网络空间,是人类自然会话在网络时代的一种线上延伸方式,通过连入性质的Internet以及所设计制作的聊天软件就能够是实现网络用户的线上沟通[2]。简易网络聊天室的优势主要体现在不需要专门的WWW服务器,并能够在聊天服务器完成工作后,避免传统CGI过程时间浪费,聊天过程中的数据交换也完全在内存中实现与进行,避免了文件读写过程的实践浪费,并且实际运行中对于服务器的请求次数也相对较少,避免了计算机屏幕的闪烁情况。因此,现代互联网产业发展中,简易聊天室应用愈加广泛,尤其是在网络交易环节,更是起到了重要的推动作用。
二、基于TCP 简易聊天室设计实现的基本原理
随着网络通信产业的逐渐发展,简易聊天室建设应用也愈加完善。尤其是基于TCP的简易网络聊天室设计,更是大大提升了聊天室的网络通信稳定性和通信性能。而基于TCP 的简易聊天室设计过程中,其基本原理主要包含了以下几个方面:
第一,聊天对象选择原理。在利用聊天室进行网络通信时,聊天对象的选择模式主要分为两种,一是通过聊天室的服务器进行消息的判断并发送;二是服务器将消息传递给用户,由用户的客户程序进行消息判断。首先,服务器判断模式。在服务器的消息判断模式中,其主要的原理就是用户选择聊天对象,将网络消息传输出去,由聊天室服务器接收,然后服务器根据用户的信息传输对象进行消息的判断,确定对应的消息接收对象,然后将消息传输过去,而避免消息发送给别人。其次,客户程序判断模式。客户程序判断模式则是在聊天室的消息传输过程中,用户将消息传递给服务器,然后服务器将消息传递给所有用户,然后由用户的客户程序对消息进行判断,接收并显示自己的消息,如果不是则不显示。
第二,一对一通信原理。基于TCP 的简易聊天室通信中,客户在需要跟某个人进行对话时,就能够重新建立一个对话窗口,然后进行用户之间的一对一对话,实现用户之间的一对一通信。
第三,服务器登录验证原理。在聊天室的使用中,需要进行服务登录验证,只有验证成功后,才能够顺利进行聊天室系统。而如果服务器地址或者端口号码输入存在错误情况,就无法顺利连接到聊天室的服务器系统,以此实现对聊天室服务的保护,全面提升聊天室网络通信的稳定性。
三、基于TCP简易聊天室设计的实时需求
网络通信的实时性是聊天室建设的基本需求,更是聊天室的网络通信效果满足其应用的实际需求的必然保障。而基于TCP简易网络聊天室设计的实时性需求满足过程中,其主要的技术保障方式包含有三个方面:
第一,HTTP轮询技术。在聊天室的消息数据传输中,聊天室的客户端会在较短的时间内进行重复性的对服务端进行HTTP请求,对是否有发送给自己的信息数据以及聊天字节进行问询,一旦有,就能够及时返回消息现实出来,如果没有,就返回空白消息,以此保证聊天室信息传输的实时性。
第二,HTTP Long Polling 算法优化保证技术。在聊天室的实际通信过程中,在聊天室发送了HTTP Request数据后,并不会立刻返回数据,而是将聊天室的HTTP 请求控制在服务端,直至用户有消息时,才放行HTTP Response数据,实现对聊天室消息数据的实时处理,避免消息数据的不及时通信。
第三,TCP长连接技术。基于TCP 的简易聊天室也能够通过TCP的长连接来保证聊天室数据传输的实时性,而其原理就是在聊天室运行的过程中,是客户端系统能够与服务器进行长时间的连接,一旦有消息到达,就能够第一时间进行消息的传输,由服务端主动性推动通信消息到客户端,以此实现聊天室的实时通信,避免服务端与客户端之间消息传输的延迟[3]。
四、基于TCP的简易聊天室设计与实现
基于TCP的简易聊天室设计中,主要包含有聊天室前端和后台两个部分,在实际的聊天室设计与实现过程中,为了保证简易聊天室能够实现多人同时应用的实际需求,就必须对以下设计的要点内容加以思考:
首先,需要对服务的单进程或者多进程进行确认,不论是服务的单进程或是多进程,还是单机器或者多机器形式,都会的聊天室的设计产生直接性影响,不同的模式所需要的设计方案也存在较大差异。
其次,在进行多进程的聊天室架构设计时,就需要高度注重不同进程之间的通信协议问题,同设备不同进程之间的通信机制也包含了Unix管道、信号、共享存储等等情况。
因此,在基于TCP的简易聊天室的设计与实现中,就需要聊天室的前端设设计和后台设计两个部分着手:
首先,基于TCP的简易聊天室前端设计。前端是运行于用户设备窗口的聊天室网页形似,是聊天室面向用户的直观体现。一般在进行聊天室的前端设计中,其核心技术包含了HTML、CSS、JavaScript等三种,实际设计中,HTML的主要作用是对聊天室的元素进行定义,CSS的主要能力则是进行元素定位,然后通过JavaScript实现聊天室的交互[4]。在基于TCP 的简易聊天室设计实现中,为了充分保证聊天室运行的稳定性和信息传输的实时性,就需要保证前端设计的稳定性,其部分代码设计如下:
﹤script﹥
var name = ws = ’’ ;
//执行websock
function chat() {
var wsserver = ’ws://47.94.11.195:443’;
//调用WebSocket对象建立连接
//ws wss: // ip:port(字符串)
ws = new WebSocket(wsserver);
//获取聊天内容展示窗口
var sayContent = document.getElementById(’sayContent’);
并且为了充分保证聊天室的执行与监督能力,还需要注重监听服务器数据的推送以来连接关闭控制,其代码如下:
//onmessage监听服务器数据推送
ws.onmessage = function (v) {
var html = sayContent.innerHTML;
sayContent.innerHTML = html + "﹤br﹥"+v.data;
}
//监听连接关闭
ws.onclose = function (v) {
var html = sayContent.innerHTML;
sayContent.innerHTML = html + "﹤br﹥聊天室已关闭!";
其次,基于TCP的简易聊天室后台设计中,作为实现聊天室编辑与控制的功能性系统,是保证聊天室运行稳定和可靠的关键所在。基于TCP 的简易聊天室后天设计代码如下:
﹤?php
$server = new swoole_websocket_server("0.0.0.0", 443);
$server-﹥users = [];
$server-﹥on(’open’, function (swoole_websocket_server $server, $request) {
$server-﹥users[$request-﹥fd][’id’] = $request-﹥fd;
});
结束语
基于TCP 的简易聊天室设计中,需要保证其前端设计与后台设计的科学性,根据聊天室的实际需求,对其设计原理加以深入把握,并注重对核心技术的高效利用,全面保障聊天室运行的可靠性和稳定性。
参考文献:
[1] 杜鹏. 一体化课程ASP动态网页设计与应用的教学设计案例——“简易聊天室”网页的制作[J]. 职业, 2018, 498(35):99-100.
[2] 万琪伟, 卢成林. 基于HTTP1.1的WebSocket协议的新式网络聊天室设计与研究[J]. 通信技术, 2018, 51(12):258-262.
[3] 聂维, 刘小豫. 基于Linux的聊天室的设计与实现[J]. 电脑与电信, 2018, 000(009):27-28.
[4] 徐承志, 黄振兴. AOP语言在GUI编程中的应用[J]. 湖北工业大学学报, 2019, 034(001):69-72.