CN116016409A - 一种在线聊天系统 - Google Patents
一种在线聊天系统 Download PDFInfo
- Publication number
- CN116016409A CN116016409A CN202310030694.2A CN202310030694A CN116016409A CN 116016409 A CN116016409 A CN 116016409A CN 202310030694 A CN202310030694 A CN 202310030694A CN 116016409 A CN116016409 A CN 116016409A
- Authority
- CN
- China
- Prior art keywords
- chat
- information
- user
- event
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000004891 communication Methods 0.000 claims abstract description 11
- 238000005516 engineering process Methods 0.000 claims abstract description 6
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000009897 systematic effect Effects 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明特别涉及一种在线聊天系统。该在线聊天系统,在应用集中管理模式下,利用Node.js和WebSocket技术实现Web端的即时通讯,包括客户端和服务端;所述客户端负责提供登录、注册、聊天主窗体、聊天界面以及对应的业务逻辑,向服务器端发送相应的服务请求,并接受服务端返回的相应的处理结果;具体的业务处理交给服务器,客户端只接受服务器处理的结果并展示给用户。该在线聊天系统,采用单线程、事件驱动、非阻塞I/O的Node做为后台服务,适用于高并发、I/O密集、少量业务逻辑的web端的聊天系统中,同时摒弃了http轮询的方式,采用了WebSocket的双通信模式,极大地提升了即时通信的性能。
Description
技术领域
本发明涉及即时通讯技术领域,特别涉及一种在线聊天系统。
背景技术
当前社会进入了一个信息高速发展的时代,人与人之间不再只依赖于面对面,或者依靠电话的联系;信息不仅需要快速传递,而且还要有助于人们保持固定长远的联系。
在WebSocket协议出现之前,双向通信是通过多个HTTP链接轮询实现的,导致了效率低下等一系列问题,并且轮询只能由客户方端发起请求,服务端根据请求url和传过去的参数返回对应结果。在Java、PHP或者.NET等服务器语言开发的聊天系统中,会为每一个客户端连接创建一个新的线程。而每个线程需要耗费大约2MB内存。也就是说,理论上,一个8GB内存的服务器可以同时连接的最大用户数为4000个左右。要让web应用程序支持更多的用户,就需要增加服务器的数量,而web应用程序的硬件成本必然也会随之上升。
基于上述情况,本发明提出了一种在线聊天系统。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的在线聊天系统。
本发明是通过如下技术方案实现的:
一种在线聊天系统,其特征在于:利用Node.js和WebSocket技术实现Web端的即时通讯,包括客户端和服务端;
所述客户端负责提供登录、注册、聊天主窗体、聊天界面以及对应的业务逻辑,向服务器端发送相应的服务请求,并接受服务端返回的相应的处理结果;具体的业务处理交给服务器,客户端只接受服务器处理的结果并展示给用户;
所述客户端是是实例化的WebSocket对象,WebSocket对象以事件驱动的方式存在;客户端事件包括但不限于open事件、close事件、error事件和message事件,其中message事件是主要事件,用于接收服务端推送的信息;
所述服务端负责监控用户登录信息和在线用户信息,连接数据库,保存和读取数据,接受客户端的服务请求,并做相应的处理,然后将处理结果发送给客户端;
所述服务端使用Node.js技术,采用事件驱动的方式执行;服务端事件包括但不限于open事件、close事件、error事件、message事件和connection事件,所述onnection事件代表通信是否连接成功,message事件的参数是客户端发送过来的信息,且message事件存放于connection事件参数中,因而要在connection事件中绑定message事件。
本发明在线聊天系统,即时通信步骤如下:
步骤S1.1、用户进入登录界面填写聊天系统的用户名和密码,如果校验成功则登录到聊天系统主界面;如果校验失败则提示登录失败;
步骤S1.2、进入主界面后,主界面显示在线用户列表区、信息显示区、信息发送区三部分;
用户在用户列表中看到目前在线的其他用户,在信息显示区看到系统提示;
步骤S1.3、用户在信息发送区内输入聊天内容,或者点击用户列表弹出私聊窗体私聊,私聊的信息其他用户不可见;
在主界面的显示区中实时显示其他用户发送过来的信息和系统消息,并通过点击查看记录按钮查看保存的聊天记录。
步骤S1.4、当用户退出或者关闭聊天系统时,发送退出系统的信息,离开聊天室,其他用户收到系统提示该用户已下线,并刷新用户列表。
本发明在线聊天系统,公聊步骤如下:
步骤S2.1、用户在公聊界面的信息输入框中输入要发送的信息,点击发送按钮实现信息发送;
步骤S2.2、在公聊界面中显示其他用户发送的公聊信息和系统所发送的系统信息,按照发送信息预设的显示方式显示聊天信息;
步骤S2.3、用户上线或者下线后,在公聊界面给出对应信息提示,并刷新列表中的在线用户;
步骤S2.4、点击列表中的用户名弹出与该用户进行私聊的对话窗体。
本发明在线聊天系统,私聊步骤如下:
步骤S3.1、用户在私聊界面的信息输入框中输入要发送的聊天信息,点击发送按钮实现私聊信息的发送;
步骤S3.2、在私聊界面中显示其他用户发送过来的私聊信息,按照发送信息预设的显示方式显示聊天信息,且私聊信息其他用户不可见。
用户在公聊和私聊的过程中,将在公聊/私聊界面中的聊天内容保存到本地文件中,用户通过工具条来查看历史聊天内容,或者在下次登录后,查看历史聊天记录。
系统管理员启动服务器后,通过服务端的操作界面找到全部的在线用户发送系统消息;以便实现管理员和用户的交流和管理;
所述系统信息包括但不限于系统公告与提示。
一种在线聊天设备,其特征在于:包括存储器和处理器;所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现上述的方法步骤。
一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。
本发明的有益效果是:该在线聊天系统,采用单线程、事件驱动、非阻塞I/O的Node做为后台服务,适用于高并发、I/O密集、少量业务逻辑的web端的聊天系统中,同时摒弃了http轮询的方式,采用了WebSocket的双通信模式,极大地提升了即时通信的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1为本发明在线聊天系统实现方法示意图。
附图2为本发明在线聊天系统私聊时序示意图。
附图3为本发明在线聊天系统系统消息时序示意图。
附图4为本发明在线聊天系统公聊时序示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
该在线聊天系统,利用Node.js和WebSocket技术实现Web端的即时通讯,包括客户端和服务端;
所述客户端负责提供登录、注册、聊天主窗体、聊天界面以及对应的业务逻辑,向服务器端发送相应的服务请求,并接受服务端返回的相应的处理结果;具体的业务处理交给服务器,客户端只接受服务器处理的结果并展示给用户;
所述客户端是实例化了一个WebSocket对象,无论是客户端还是服务端,WebSocket都是一个以事件驱动的方式存在。客户端主要事件是open、close、error、message。主要是message事件,它负责接收来自服务端推送过来的信息。
所述服务端负责监控用户登录信息和在线用户信息,连接数据库,保存和读取数据,接受客户端的服务请求,并做相应的处理,然后将处理结果发送给客户端。
所述服务端使用Node.js,也是采用事件驱动的方式执行。
主要事件有:open、close、error、message、connection;
message事件存放于connection事件的参数里的,所以要在connection事件中绑定message事件。connection事件是代表通信是否连接成功的事件。message事件的参数是客户端传过来的信息。然后要做的就是把接收到的客户端信息分发聊天室所有的人。
WebSocket是基于TCP的一种新的网络协议,它实现了浏览器与服务器之间的双向通信(允许服务器主动发送信息给客户端)。由于WebSocket协议是双向通信的,只要WebSocket连接建立起来,既可以由客户端给服务端发送数据,也可以由服务端主动给客户端发送数据。
Node.js本身是事件驱动的方式擅长和大量客户端保持高并发的连接;Node.js的特征是单线程、事件驱动、非阻塞I/O;适合运用在高并发、I/O密集、少量业务逻辑的web端的聊天系统。
如果用Node.js的话,它不为每个客户连接创建一个新的线程,而是仅仅使用一个线程。当有用户连接了,就触发一个内部事件,通过非阻塞I/O、事件驱动机制,让Node.js程序宏观上也是并行的。使用Node.js,假如一个8GB内存的服务器,可以同时处理超过4万用户的连接。
该在线聊天系统,即时通信步骤如下:
步骤S1.1、用户进入登录界面填写聊天系统的用户名和密码,如果校验成功则登录到聊天系统主界面;如果校验失败则提示登录失败;
步骤S1.2、进入主界面后,主界面显示在线用户列表区、信息显示区、信息发送区三部分;
用户在用户列表中看到目前在线的其他用户,在信息显示区看到系统提示;
步骤S1.3、用户在信息发送区内输入聊天内容,或者点击用户列表弹出私聊窗体私聊,私聊的信息其他用户不可见;
在主界面的显示区中实时显示其他用户发送过来的信息和系统消息,并通过点击查看记录按钮查看保存的聊天记录。
步骤S1.4、当用户退出或者关闭聊天系统时,发送退出系统的信息,离开聊天室,其他用户收到系统提示该用户已下线,并刷新用户列表。
该在线聊天系统,公聊步骤如下:
步骤S2.1、用户在公聊界面的信息输入框中输入要发送的信息,点击发送按钮实现信息发送;
步骤S2.2、在公聊界面中显示其他用户发送的公聊信息和系统所发送的系统信息,按照发送信息预设的显示方式显示聊天信息;
步骤S2.3、用户上线或者下线后,在公聊界面给出对应信息提示,并刷新列表中的在线用户;
步骤S2.4、点击列表中的用户名弹出与该用户进行私聊的对话窗体。
该在线聊天系统,私聊步骤如下:
步骤S3.1、用户在私聊界面的信息输入框中输入要发送的聊天信息,点击发送按钮实现私聊信息的发送;
步骤S3.2、在私聊界面中显示其他用户发送过来的私聊信息,按照发送信息预设的显示方式显示聊天信息,且私聊信息其他用户不可见。
用户在公聊和私聊的过程中,将在公聊/私聊界面中的聊天内容保存到本地文件中,用户通过工具条来查看历史聊天内容,或者在下次登录后,查看历史聊天记录。
系统管理员启动服务器后,通过服务端的操作界面找到全部的在线用户发送系统消息;以便实现管理员和用户的交流和管理;
所述系统信息包括但不限于系统公告与提示。
该在线聊天设备,包括存储器和处理器;所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现上述的方法步骤。
该可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (8)
1.一种在线聊天系统,其特征在于:利用Node.js和WebSocket技术实现Web端的即时通讯,包括客户端和服务端;
所述客户端负责提供登录、注册、聊天主窗体、聊天界面以及对应的业务逻辑,向服务器端发送相应的服务请求,并接受服务端返回的相应的处理结果;具体的业务处理交给服务器,客户端只接受服务器处理的结果并展示给用户;
所述客户端是是实例化的WebSocket对象,WebSocket对象以事件驱动的方式存在;客户端事件包括但不限于open事件、close事件、error事件和message事件,其中message事件是主要事件,用于接收服务端推送的信息;
所述服务端负责监控用户登录信息和在线用户信息,连接数据库,保存和读取数据,接受客户端的服务请求,并做相应的处理,然后将处理结果发送给客户端;
所述服务端使用Node.js技术,采用事件驱动的方式执行;服务端事件包括但不限于open事件、close事件、error事件、message事件和connection事件,所述onnection事件代表通信是否连接成功,message事件的参数是客户端发送过来的信息,且message事件存放于connection事件参数中,因而要在connection事件中绑定message事件。
2.根据权利要求1所述的在线聊天系统,其特征在于:即时通信步骤如下:
步骤S1.1、用户进入登录界面填写聊天系统的用户名和密码,如果校验成功则登录到聊天系统主界面;如果校验失败则提示登录失败;
步骤S1.2、进入主界面后,主界面显示在线用户列表区、信息显示区、信息发送区三部分;
用户在用户列表中看到目前在线的其他用户,在信息显示区看到系统提示;
步骤S1.3、用户在信息发送区内输入聊天内容,或者点击用户列表弹出私聊窗体私聊,私聊的信息其他用户不可见;
在主界面的显示区中实时显示其他用户发送过来的信息和系统消息,并通过点击查看记录按钮查看保存的聊天记录。
步骤S1.4、当用户退出或者关闭聊天系统时,发送退出系统的信息,离开聊天室,其他用户收到系统提示该用户已下线,并刷新用户列表。
3.根据权利要求2所述的在线聊天系统,其特征在于:公聊步骤如下:
步骤S2.1、用户在公聊界面的信息输入框中输入要发送的信息,点击发送按钮实现信息发送;
步骤S2.2、在公聊界面中显示其他用户发送的公聊信息和系统所发送的系统信息,按照发送信息预设的显示方式显示聊天信息;
步骤S2.3、用户上线或者下线后,在公聊界面给出对应信息提示,并刷新列表中的在线用户;
步骤S2.4、点击列表中的用户名弹出与该用户进行私聊的对话窗体。
4.根据权利要求2所述的在线聊天系统,其特征在于:私聊步骤如下:
步骤S3.1、用户在私聊界面的信息输入框中输入要发送的聊天信息,点击发送按钮实现私聊信息的发送;
步骤S3.2、在私聊界面中显示其他用户发送过来的私聊信息,按照发送信息预设的显示方式显示聊天信息,且私聊信息其他用户不可见。
5.根据权利要求3或4所述的在线聊天系统,其特征在于:用户在公聊和私聊的过程中,将在公聊/私聊界面中的聊天内容保存到本地文件中,用户通过工具条来查看历史聊天内容,或者在下次登录后,查看历史聊天记录。
6.根据权利要求1所述的在线聊天系统,其特征在于:系统管理员启动服务器后,通过服务端的操作界面找到全部的在线用户发送系统消息;以便实现管理员和用户的交流和管理;
所述系统信息包括但不限于系统公告与提示。
7.一种在线聊天设备,其特征在于:包括存储器和处理器;所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现如权利要求1至6任意一项所述的方法步骤。
8.一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任意一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310030694.2A CN116016409A (zh) | 2023-01-10 | 2023-01-10 | 一种在线聊天系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310030694.2A CN116016409A (zh) | 2023-01-10 | 2023-01-10 | 一种在线聊天系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116016409A true CN116016409A (zh) | 2023-04-25 |
Family
ID=86026595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310030694.2A Pending CN116016409A (zh) | 2023-01-10 | 2023-01-10 | 一种在线聊天系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016409A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111106996A (zh) * | 2019-12-28 | 2020-05-05 | 安徽微沃信息科技股份有限公司 | 一种基于WebSocket和缓存的多终端在线聊天系统 |
US20220092658A1 (en) * | 2020-09-22 | 2022-03-24 | Gopesh Kumar | System and method for expert service providers to provide one on one chat advice services through unique empowered independent agents to consumers |
-
2023
- 2023-01-10 CN CN202310030694.2A patent/CN116016409A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111106996A (zh) * | 2019-12-28 | 2020-05-05 | 安徽微沃信息科技股份有限公司 | 一种基于WebSocket和缓存的多终端在线聊天系统 |
US20220092658A1 (en) * | 2020-09-22 | 2022-03-24 | Gopesh Kumar | System and method for expert service providers to provide one on one chat advice services through unique empowered independent agents to consumers |
Non-Patent Citations (4)
Title |
---|
CREATORRAY: "原生JavaScript+WebSocket+nodejs实现聊天室功能", pages 1 - 6, Retrieved from the Internet <URL:https://blog.csdn.net/m0_46171043/article/details/113126405> * |
书童小二: "Node.js下基于Express + Socket.io 搭建一个基本的在线聊天室", pages 1 - 10, Retrieved from the Internet <URL:https://cloud.tencent.com/developer/article/1326873?from=information.detail.Socket在线聊天> * |
克莱!派大星: "于Socket.io、Express的Web聊天室", pages 1 - 7, Retrieved from the Internet <URL:https://bbs.csdn.net/topics/604323772> * |
想飞的小菜鸡: "基于flask-socketio的web聊天室", pages 2 - 10, Retrieved from the Internet <URL:https://blog.csdn.net/qq_53581188/article/details/118086889> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101447949B (zh) | 一种基于即时通讯系统的消息交互方法和装置 | |
US8671145B2 (en) | Method and computer program product for establishing real-time communications between networked computers | |
US9929984B2 (en) | Method and computer program product for establishing real-time communications between networked computers | |
Bozdag et al. | A comparison of push and pull techniques for ajax | |
CN101001260B (zh) | 存储和恢复远程用户接口的状态信息的方法和设备 | |
US9425973B2 (en) | Resource-based synchronization between endpoints in a web-based real time collaboration | |
US20050188007A1 (en) | System and method for embedding data transmission in a web page | |
CN110612716B (zh) | 数据消息网络路由的中间设备 | |
WO2013158830A1 (en) | Authentication of service requests | |
WO2021080921A1 (en) | Automated service agent for servicing issues described in a group communication channel | |
CN101299731A (zh) | 基于Web的即时通讯方法及装置 | |
CN101379785A (zh) | 消息历史记录显示系统和方法 | |
US20150039676A1 (en) | Messaging api over http protocol to establish context for data exchange | |
CN103873518B (zh) | 多终端同步获取增强通讯录的方法、系统与Web服务器 | |
CN110049134A (zh) | 客服聊天方法、装置、客服端、服务器及存储介质 | |
CN110430126A (zh) | 即时通信消息处理方法、装置、系统、设备及存储介质 | |
CN1540945A (zh) | 通信装置及通信方法 | |
CN101155079B (zh) | 一种监控即时通讯服务器的方法、装置和系统 | |
CN113162954B (zh) | 靶机的创建方法以及网络攻防训练系统 | |
CN103595611B (zh) | 即时通信应用的实现方法及系统、与设备 | |
CN107749308A (zh) | 一种为甲状腺超声诊断app提供支撑的后台管理系统 | |
CN116016409A (zh) | 一种在线聊天系统 | |
CN108989404A (zh) | 一种弹幕消息下发方法、服务器、系统和存储介质 | |
CN111538932B (zh) | 一种跨平台、终端及内外网的外事管理方法 | |
CN108574621A (zh) | 一种在视频监控中进行交互的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |