Which technology do you choose to implement the web chat room?
With the rise of HTML5 Websockets, web chat applications are becoming more and more popular. Recently, I am working on a mobile web application, the core function of which is to implement web chat on the mobile phone. Of course, the function is very simple. Currently, it can only send text messages and picture messages. The interface is as follows
To implement the chat function on the web page, there are currently two ways to choose from. One is to use ajax-long polling, and the other is to use websocket technology in html5.
1. Ajax-long polling
Before HTML5 appeared, I thought that this method would be the way to implement the chat function on the web page! The so-called long polling is nothing more than real-time request for data from the server, that is, to pull data from the server. This requires using js to set a timer setinterval() in the web page to request the server once every certain period of time. If there is new data, the client will display this data on its own page. The whole process can be represented by the following figure
Using this method requires an infinite loop request until you leave the chat page, which consumes a lot of resources. However, it was a good method before HTML appeared.
2. HTML5 WebSocket
With the rise of HTML5, WebSocket is gradually becoming known to people. Using WebSocket to implement web chat will replace Ajax, and this chat method is becoming more and more widely used.
Websocket protocol provides full-duplex communication, which is different from HTTP protocol. In addition, Websocket protocol is established on a single TCP link, and its transmitted information flow is based on TCP. Websocket protocol defines ws or wss as URI to encrypt or decrypt links. For example, we can use ws://127.0.0.1 address as the link address of websocket service. Currently, websocket protocol has been supported by browsers such as Google, IE, Firefox, Safari and Opera.
The process of Websocket chat is as follows
In this way, both the client and the server can push messages to each other. When there is no new message, everyone is listening to the corresponding port on their own end. It can be considered that each browser and the server have established a data channel, and everyone is listening at their own channel port (of course, including the server). When a browser pushes a message to the server, the server receives the message and then pushes the message to all browsers connected to it (including the browser that actively pushes messages to the server). Such a process can realize the web version of chat.
Of course, not all browsers support the websocket protocol now, so in order to achieve wider compatibility, Guillermo Rauch created the websocket API - socket.io.
Socket.io is a JavaScript library, consisting of two parts: one is the client library; the other is the server library, which is implemented using NodeJS. These two parts use almost the same API, and socket.io is an event-driven mechanism like NodeJS.
The above are two ways to implement web chat at present. We can choose any one of them according to the actual situation of the project. Of course, it is recommended to use websocket. This article only introduces two ways to implement web chat, and does not involve any implementation code. In the next article, I will introduce how to use socket.io to build a simple chat room. If you have any good suggestions, please leave a message below to discuss and improve together.
For reprinting, please send an email to 1244347461@qq.com for approval. After obtaining the author's consent, kindly include the source as a link.
Article URL:https://www.jiyik.com/en/xwzj/network_9827.html
Related Articles
What multipart/form-data does in post Upload upload files
Publish Date:2025/03/18 Views:63 Category:NETWORK
-
Everyone has used the attribute enctype="multipart/form-data" when uploading files using a form. What is the role of multipart/form-data? Let's talk about this topic. First, let's look at a case Look at the first code form action= "handl
About application/x-www-form-urlencoded
Publish Date:2025/03/18 Views:147 Category:NETWORK
-
As a data format of form, application/x-www-form-urlencoded has its own characteristics form action= "handle.php" method= "post" input type= "text" name= " uname" class= " uname" /br / input type= "text" name= "email" class=
My understanding of webservice is this
Publish Date:2025/03/18 Views:147 Category:NETWORK
-
Recently, I encountered such a project at work (temporarily named Project A). Project A itself was developed in PHP, but its data came from another project developed in Java (temporarily named Project B). Project A could not operate the dat
WSDL looks like this
Publish Date:2025/03/18 Views:190 Category:NETWORK
-
When I first started learning Webservice, I found that there were quite a lot of knowledge points involved, and each point could be a school of its own. Especially when I saw WSDL, I looked up information for a long time, but I was still a
Implementing a group chat room using socket.io
Publish Date:2025/03/18 Views:65 Category:NETWORK
-
This article will share with you an example of using socket.io to realize the function of group chat. If you want to use socket.io, you must use nodejs to implement the server, so we need to install socket.io in nodejs Install socket.io How
Getting started with FastCGI
Publish Date:2025/03/18 Views:164 Category:NETWORK
-
In "First Contact with CGI", we mentioned the operating mechanisms of CGI and Server APIs, as well as their respective advantages and disadvantages. In this chapter, we will learn about FastCGI, which combines the advantages of CGI and Serv
Build the SVN service project and synchronize the code to the project directory
Publish Date:2025/03/18 Views:197 Category:NETWORK
-
As the project grows, more people are needed to participate in the development of the same project. SVN is used for multiple people to jointly develop the same project and share resources. There are two ways to run SVN server: one is as a s
Ajax cross-domain cookie related settings
Publish Date:2025/03/18 Views:87 Category:NETWORK
-
In web programming, we often encounter cross-domain issues. By default, browsers do not allow cross-domain access. Therefore, there is a concept here: CORS (Cross-Origin Resource Sharing). Before the HTML5 standard came out, CORS was not al
PHP+ajax to achieve cross-domain single sign-on
Publish Date:2025/03/16 Views:145 Category:NETWORK
-
We have previously introduced the principle of cross-domain single sign-on in "Detailed explanation of the implementation methods of three situations of SSO single sign-on" . Here we will introduce how to implement single sign-on using PHP