Linux Virtual Delivery Agent

WebSocket communication between VDAs and Delivery Controllers

This article outlines the steps to establish WebSocket communication between VDAs and Delivery Controllers, as an alternative to Windows Communication Foundation (WCF).

Step 1: Enable WebSocket on Delivery Controllers

  1. Configure your site. For more information, see Create a site.

  2. Install TLS certificates on each Delivery Controller present on your site. For more information, see Install TLS server certificates on Controllers.

  3. Enable WebSocket Communication on each Delivery Controller by using the following command:

    New-ItemProperty "HKLM:\SOFTWARE\Citrix\DesktopServer\WorkerProxy" -Name "WebSocket_Enabled" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    

    Note:

    Ensure that you restart the Delivery Controllers after enabling WebSocket.

Step 2: Enable WebSocket on VDAs

  1. Install the root and intermediate Certificate Authorities (CAs) on the VDAs to trust the Delivery Controllers.

  2. Enable WebSocket communication for VDAs based on the VDA creation method:

    • Non-domain-Joined VDAs:

      WebSocket communication is enabled by default. No additional configuration is required.

    • Domain-joined VDAs created using easy install:

      Enable WebSocket by setting the following environment variables in /opt/Citrix/VDA/sbin/ctxinstall.conf before running the easy install script (ctxinstall.sh) initially.

      • **CTX_XDL_DJ_ENROLLMENT_TOKEN_FILE= ’** – Controls WebSocket enablement and specifies the token file for VDA registration. The default value is **‘’**, meaning that WebSocket is disabled. To enable WebSocket on a domain-joined VDA, enter the path to the token file.
      • **CTX_XDL_ENROLLMENT_TOOL_USING_LDAPS=’y n’** – Configures the enrollment tool to query either LDAP or LDAPS. By default, it queries LDAP (‘n’). To use LDAPS, set the value to ‘y’.
    • Domain-joined VDAs created using Machine Creation Services (MCS):

      On the template machine, open /etc/xdl/mcs/mcs_local_setting.reg and add a command line similar to the following for WebSocket enablement:

       create -k "HKLM\Software\Citrix\VirtualDesktopAgent" -t "REG_DWORD" -v "CbpTransportVersion2" -d "0x00000001" --force
       <!--NeedCopy-->
      

      This command creates or modifies the CbpTransportVersion2 registry key. By default, the value is 0 (WCF communication). To enable WebSocket communication on domain-joined VDAs, set the value to any non-zero value. After modifying the registry, restart the ctxvda service to apply the changes.

      Tip:

      On any domain-joined VDA, regardless of its creation method, you can use the CbpTransportVersion2 registry key to switch between WCF and WebSocket.

WebSocket communication between VDAs and Delivery Controllers
OSZAR »