Javascript is one of the most popular programming languages used for building web applications. It’s a dynamic, high-level language that is easy to learn and use. One of the key features of Javascript is its ability to use WebSockets, which allow for real-time communication between the client and server. However, sometimes these connections need to be closed. In this article, we’ll explore everything you need to know about Javascript WebSocket close, including what it is, how to use it, and some frequently asked questions.
What is Javascript WebSocket Close?
Javascript WebSocket close is a method used to close a WebSocket connection between the client and server. WebSockets allow for real-time communication between the client and server, but sometimes these connections need to be closed. The WebSocket close method is used to initiate the closing handshake between the client and server. Once the handshake is complete, the connection is closed.
How to Use Javascript WebSocket Close
Using Javascript WebSocket close is a simple process. The WebSocket object has a close method that can be called to close the connection. Here’s an example:
var socket = new WebSocket(“ws://localhost:8080”);
// When the connection is open, send some data to the server
socket.onopen = function (event) {
socket.send(“Hello Server!”);
};
// When the connection is closed, log the error
socket.onclose = function (event) {
console.log(“WebSocket closed: ” + event.code + ” ” + event.reason);
};
// Close the connection
socket.close();
In this example, we create a new WebSocket object and open a connection to the server. Once the connection is open, we send some data to the server. We then define an onclose event handler that logs the error when the connection is closed. Finally, we call the close method to close the connection.
WebSocket Close Codes
When a WebSocket connection is closed, a code and reason are sent to both the client and server. The close code is a numeric code that represents the reason for closing the connection. Here are some common close codes:
- 1000 – Normal Closure
- 1001 – Going Away
- 1002 – Protocol Error
- 1003 – Unsupported Data
- 1005 – No Status Received
- 1006 – Abnormal Closure
- 1007 – Invalid frame payload data
- 1008 – Policy Violation
- 1009 – Message too big
- 1010 – Missing Extension
- 1011 – Internal Error
- 1012 – Service Restart
- 1013 – Try Again Later
- 1014 – Bad Gateway
- 1015 – TLS Handshake Failure
The reason is a string that provides more information about why the connection was closed. Here’s an example:
socket.onclose = function(event) {
console.log(“WebSocket closed: ” + event.code + ” ” + event.reason);
};
In this example, we define an onclose event handler that logs the close code and reason.
WebSocket Close Methods
There are several WebSocket close methods that can be used to close a connection:
- close() – Initiates the closing handshake
- terminate() – Immediately closes the connection without initiating the closing handshake
The close method initiates the closing handshake between the client and server. The terminate method immediately closes the connection without initiating the closing handshake. Here’s an example:
// Close the connection with the server
socket.close();
// Terminate the connection with the server
socket.terminate();
In this example, we call the close method to initiate the closing handshake and close the connection with the server. We then call the terminate method to immediately close the connection without initiating the closing handshake.
WebSocket Close Events
When a WebSocket connection is closed, several events are fired:
- onclose – Fires when the connection is closed
- onerror – Fires when an error occurs
The onclose event fires when the connection is closed. The onerror event fires when an error occurs. Here’s an example:
// Define the onclose event handler
socket.onclose = function(event) {
console.log(“WebSocket closed: ” + event.code + ” ” + event.reason);
};
// Define the onerror event handler
socket.onerror = function(error) {
console.log(“WebSocket error: ” + error);
};
In this example, we define an onclose event handler that logs the close code and reason. We also define an onerror event handler that logs the error message.
FAQ
What is a WebSocket?
A WebSocket is a bi-directional, full-duplex, persistent connection between a web browser and a server. It allows for real-time communication between the client and server.
Why would I need to close a WebSocket connection?
There are several reasons why you may need to close a WebSocket connection, such as when the user navigates away from the page or when the connection becomes idle.
What is the difference between close() and terminate()?
The close() method initiates the closing handshake between the client and server, while the terminate() method immediately closes the connection without initiating the closing handshake.
What happens if the connection is closed unexpectedly?
If the connection is closed unexpectedly, an onclose event will be fired and the close code and reason will be sent to both the client and server.
What are some common close codes?
Some common close codes include Normal Closure (1000), Going Away (1001), Protocol Error (1002), and Unsupported Data (1003).
Can I reopen a WebSocket connection after it has been closed?
Yes, you can reopen a WebSocket connection after it has been closed by creating a new WebSocket object and opening a new connection.
Is it possible to send data after the connection has been closed?
No, it is not possible to send data after the connection has been closed. You must open a new connection to send data.