This topic provides an overview of WebSocket and WebSocket Secure.

What is WebSocket?

WebSocket is an HTML5 protocol that implements full-duplex communication between browsers and servers. WebSocket allows you to establish real-time communication and save server and bandwidth resources. WebSocket is similar to HTTP, which transfers data over TCP. One major difference between WebSocket and HTTP is that WebSocket is a two-way communication protocol. After a connection is established over WebSocket, the WebSocket server and the browser or client can send or receive data between each other similar to a socket. The WebSocket server and the client must complete a handshake similar to a TCP handshake to establish communication.

WebSocket Secure is the encrypted version of WebSocket.

Why do I use WebSocket?

New web applications emerge as the Internet develops. These applications, such as live video streaming and online chat rooms, require that servers have real-time pushing capabilities. To achieve this, a large number of websites used the polling technique in the past. When the polling technique is used, the browser sends HTTP requests to the server at specific intervals, such as every second. Then, the server returns the most recent data to the browser of the client. One disadvantage of this technique is that bandwidth resources are wasted. The browser must constantly send requests to the server, and the HTTP request header is long and does not contain a large amount of valid data.

To solve this problem, HTML5 defines WebSocket, which helps save server and bandwidth resources and facilitates real-time communication. WebSocket enables full-duplex communication between the browser and the server, and allows the server to proactively send data to the client.

The following figure shows how a client interacts with a server by using WebSocket.

Interaction over WebSocket

How do I enable WebSocket and WebSocket Secure for a Server Load Balancer (SLB) instance?

If you use a high-performance SLB instance, you do not need to configure the SLB instance.
  • By default, HTTP listeners support WebSocket.
  • By default, HTTPS listeners support WebSocket Secure.
Note If you use a shared-resource SLB instance, you must upgrade the SLB instance to a high-performance SLB instance, which supports WebSocket and WebSocket Secure. For more information, see FAQ about high-performance CLB instances.

Supported regions

WebSocket and WebSocket Secure are available in all regions.

Billing

You are not charged for using WebSocket or WebSocket Secure.

Limits

Take note of the following limits when you use WebSocket and WebSocket Secure:

  • If your SLB instance is connected to backend Elastic Compute Service (ECS) instances by using HTTP/1.1, we recommend that you use web servers that support HTTP/1.1 as backend servers.
  • If no packet is transferred between an SLB instance and a backend ECS instance within 60 seconds, the connection is closed. If you want the connection to remain open, enable the keepalive feature to ensure that a packet is transferred every 60 seconds.