Configure WebSocket Support

Objective

This document provides instructions on how to enable websocket-based communication for your application. WebSocket provides a persistent connection between client and server over HTTP or HTTPS.

Using the instructions provided in this guide, you can enable websocket connection for your services provisioned using a virtual host. For more information on virtual hosts, see Virtual Host.


Prerequisites

The following prerequisites apply:

Note: If you do not have an account, see Create an Account.

  • A virtual host acting as a proxy for a service

Note: If you do not have a virtual host configured, see Create a Virtual Host.


Configuration

Configuration Sequence

Enabling websocket-based communication requires performing the following sequence of actions:

Phase Description
Create Endpoint and Cluster Create objects required for virtual host.
Create Route with Websocket Create route enabled for websocket communication.
Create Advertise Policy and Virtual Host Create advertise policy and virtual host with the route and policy.

Note: You can enable websocket communication while creating the route or you can edit an existing route to enable websocket support.


Create Endpoint and Cluster

F5 Distributed Cloud virtual host requires an endpoint and associated cluster where the service is available or discovered. For instructions on creating endpoint and cluster, see Create Endpoint and Create Cluster respectively.


Create Route with Websocket

Perform the following steps to create a route enabled with websocket support.

Step 1: Navigate to the Routes page.
  • Select the Load Balancers service.
  • Select the desired namespace from the Namespace drop-down menu.
  • Navigate to Manage -> Virtual Host -> Routes.

routes
Figure Cloud Credentials

Step 2: Begin to add a route.
  • Click Add Route.
  • Enter a name for the route. Optionally set labels and add a description.
  • In the List of routes section, click Configure.
  • Click Add Item to add a new route to the list.
  • In the Actions section, make sure Destination List is set as the action, and then click Configure.
Step 3: Set the destination origin pools (clusters).
  • Click Add Item in the Destination Origin pools (clusters) list under the Origin Pools and Wights section.
  • Select an existing cluster from the Cluster drop-down list, or click the create a new cluster at the bottom of the drop-down list.
  • Enter a weight for this cluster if there are to be multiple clusters.
  • Click Add Item to apply the cluster to the destination list.

cluster cfg
Route Destination Cluster Configuration

Step 4: Configure the destination actions.
  • In the Destination Actions section, turn on the Show Advanced Fields toggle.
  • Click Configure in the Websocket Configuration section.
  • Turn on the Show Advanced Fields toggle in the Websocket Configuration section.
  • Check the Use Websocket checkbox and click Apply.
  • Optionally, enter a value in milliseconds in the Timeout field. The websocket connection gets closed after the set time period of idle time.
  • Optionally, configure a retry policy. The default is 1 retry with no conditions or changes.

WebSocket
Figure: Websocket Configuration Option in Route

Step 5: Complete the route.
  • Click Apply to save the destination list.
  • Click Add Item to save the actions.
  • Click Apply to save the list of routes.
  • Click Save and Exit to save the route.

Note: Configure all the other fields as necessary. For information on all fields, see Create Route.

Create Advertise Policy and Virtual Host

Distributed Cloud virtual host requires an advertise policy to specify where and how the service is advertised.

Step 1: Create an advertise policy.
Step 2: Create a virtual host of type HTTP Proxy or HTTPS Proxy.
  • Create a virtual host of type HTTP Proxy or HTTPS Proxy. Use the instructions in the Create Advertise Policy chapter of Create and Advertise a Virtual Host guide.
  • Apply the route created in the Create Route with Websocket chapter.

VhostRoute
Figure: Add Websocket Enabled Route to Virtual Host

---

Concepts


API References