WebSockets
The WebSockets tab on the Connectors page enables you to configure and monitor WebSockets (formerly known as eFTL clusters). Websockets extend TIBCO messaging to communicate with a variety of client devices and applications through a compact messaging API. For more information, see TIBCO eFTL™ - Enterprise Edition documentation.
WebSockets Monitoring and Administration
At the top of the WebSocket Tab, two monitoring charts enable you to view summary information about the health of your WebSocket Clusters. The Most Inbound Messages chart shows the WebSocket Clusters with the most inbound messages, summed across all channels. The Most Outbound Messages chart shows the WebSocket Clusters with the most outbound messages, summed across all channels.
Below the charts, you will see a table presenting the following at a glance information about the configuration and status of your WebSocket Clusters:
| Column | Description |
|---|---|
| Name | Name of the WebSocket cluster. |
| Servers | The number of servers in the cluster, and their combined state. |
| Max Connections | The number of clients that each server in the WebSocket cluster can support simultaneously. |
| Authentication |
Enabled: Indicates that the WebSocket Cluster uses authentication and authorization. The WebSocket client applications must authenticate to the WebSocket server with username and password credentials. Disabled: Authentication and authorization security is not required for this WebSocket Cluster’s clients. |
| Channels | The number of channels that this WebSocket Cluster has. |
By expanding a row in the WebSocket Cluster table, you can view more detailed status and at a glance configuration information in the following sub-tables.
WebSockets Monitoring and Configuration
The WebSocket Server sub-table presents the following information:
| Column | Description |
|---|---|
| Server Name | The Client label of the WebSocket server. |
| Status |
Running: The WebSocket server is running and its local realm definition is up to date: that is, it is the latest deployment. Offline: The WebSocket server is not running, and the FTL server does not have any data about it. Needs Restart: The server is running, but it cannot accept a proposed deployment. To accept the deployment, you must restart the service. Timed Out: The FTL server has lost the WebSocket server's heartbeat signal. Either the WebSocket server has stopped, or a network segmentation obstructs the heartbeat signal. Exception: The WebSocket server is running, but its realm definition is out-of-date. The deployment caused an error in the WebSocket server, so the service continues to use its old realm definition. Restarting the WebSocket server might not be sufficient to resolve the issue. For example, the deployment specifies a new TCP transport, but the port is already bound. Out-of-Sync: The WebSocket server's realm definition is a different revision than the FTL server's. |
| ID | The client id of the WebSocket server. To see more detailed information about the server, click this ID. |
| Host | Host name of the WebSocket server's host computer. |
| Log Level | The logging level of the WebSocket server. |
Additionally, by clicking the actions menu in the WebSocket Server Table, you can perform the following administrative actions:
| Action | Description |
|---|---|
| Change Log Level | Change the logging level of the WebSocket server. For more information, see Log Level Reference in the TIBCO FTL® - Enterprise Edition Development. |
WebSocket FTL Channel Table
This sub-table presents the following information about FTL Channels:
| Column | Description |
|---|---|
| Channel | The name of the FTL Channel |
| Cluster | The persistence cluster used by the FTL Channel |
| Store | The persistence store associated with the FTL Channel |
| Durable Template | The default durable template for the FTL Channel. For more information, see Advanced WebSocket Cluster Configuration. |
| Format | The Exchange Format used by the FTL Channel. For more information, see Advanced WebSocket Cluster Configuration. |
WebSocket EMS Channel Table
This sub-table presents the following information about EMS Channels:
| Column | Description |
|---|---|
| Channel | The name of the EMS Channel |
| EMS Server | The EMS Server that this EMS Channel Connects to |
| EMS Delivery Mode | The delivery mode for the EMS Channel. For more information, see Advanced WebSocket Cluster Configuration. |
| EMS Acknowledge Mode | How messages are acknowledged to the EMS Server by this EMS Channel |
| EMS Topic Prefix | Prefix string that this EMS Channel prepends to EMS topic names at each publish and subscribe option. For more information, Advanced WebSocket Cluster Configuration. |
WebSockets Configuration
Creating a WebSocket Cluster
To create a new WebSocket Cluster, enter edit mode and click the New WebSocket Cluster button. Inside the create dialog, you can specify the following cluster properties:
| Property | Description |
|---|---|
| Name | Required. Name of the WebSockets Cluster. Cluster names must be unique. All names have a maximum length of 256 characters |
| Maximum Connections |
Limits the number of clients that each server in the WebSocket cluster can support simultaneously. Zero indicates no limit. |
| Require Authentication |
Enabled: This must be enabled for each WebSocket Cluster that will use authentication and authorization. The WebSocket client applications must authenticate to the WebSocket server with username and password credentials. The WebSocket server must access an authentication service that authenticates and authorizes WebSocket client applications. Disabled: The WebSocket server does not require authentication and authorization security for its clients. |
After setting up the Cluster Properties, you are able to add FTL and EMS channels in Creation steps 2 and 3, respectively.
The following Channel Properties can be specified:
| Property | Channel Type | Description |
|---|---|---|
| Name | FTL, EMS | Required. Name of the Channel. Channel names must be unique. All names have a maximum length of 256 characters. |
| EMS Server | EMS |
Required for EMS Channels. The WebSocket server connects to the EMS server at this URL. For fault tolerance, supply a comma-separated list of URLs: first the primary EMS server, then the backup server |
| Username | EMS | Required for EMS Channels. The WebSocket server authenticates itself to the EMS server using this username. |
| Password | EMS | Required for EMS Channels. The WebSocket server authenticates itself to the EMS server using this password. |
To edit additional channel properties, see Advanced WebSocket Cluster Configuration.
You can review your configured WebSocket cluster in Step 4: Review & Submit prior to creating the new WebSocket.
Editing a WebSocket Cluster
To edit a configured WebSocket Cluster, click the three vertical dots in the cluster row and select Edit. To modify WebSocket Cluster properties other than those outlined in the tables above, toggle the Advanced Edit View. For more information, see Advanced WebSocket Cluster Configuration.
Deleting a WebSocket Cluster
To delete a configured WebSocket Cluster, open the actions menu for that cluster row, and select Delete.
Advanced WebSocket Cluster Configuration
Enable Advanced view in the create or edit WebSocket Cluster dialog and click the pencil icon next to a channel to modify advanced FTL or EMS channel properties. The following table details the properties shown in the advanced configuration section, see Creating a WebSocket Cluster for a table containing a description of the rest of the WebSocket Cluster properties:
| Property | Channel Type | Description |
|---|---|---|
| Cluster | FTL | The persistence cluster used by the FTL Channel. |
| Store | FTL |
Optional. Associates a persistence store with an FTL Channel. To prevent crosstalk, use unique stores: that is, ensure that no two channels use the same store. |
| Default Durable Template | FTL |
Optional. When WebSocket clients create dynamic durable subscriptions on the channel without specifying a durable type, they use this template. It is a good practice to avoid confusion by configuring a standard durable template as the default. You can associate at most one default dynamic durable template with each channel. The dropdown offers the templates defined in the persistence store associated with the channel. |
| Exchange Format | FTL |
Optional. When present, the channel converts messages from WebSocket clients into this exchange format as it forwards them to FTL clients. Select a format name from the dropdown menu of formats defined for the FTL server. When absent, the channel converts messages from WebSocket clients into self-describing dynamic-format messages as it forwards them to FTL clients. |
| Shared Durable Template | FTL |
Optional. When WebSocket clients create shared durable subscriptions on the channel, they use this template. You can associate at most one shared durable template with each channel. The dropdown offers the templates defined in the persistence store associated with the channel. |
| Last-Value Durable Template | FTL |
Optional. When WebSocket clients create last-value durable subscriptions on the channel, they use this template. You can associate at most one last-value durable template with each channel. The dropdown offers the templates defined in the persistence store associated with the channel. |
| Map Template | FTL |
Optional. When WebSocket clients create map durable subscriptions on the channel, they use this template. You can associate at most one map template with each channel. The dropdown offers the templates defined in the persistence store associated with the channel. |
| Subscriber Name Mapping for Static Durables | FTL |
Optional. If you configure a persistence store for a channel, then you can configure a mapping from durable names (in subscribe calls) to static durable names (defined in the store). For the semantics of durable subscriptions, see Persistence in TIBCO FTL® - Enterprise EditionDevelopment. |
| Maximum Queue Size | FTL |
Limit on the number of WebSocket client message queues. This can be used to conserve memory in the WebSocket server. For background and complete details, see Maximum Queue Size in TIBCO eFTL™ - Enterprise Edition Administration. |
| Maximum Persistence Retry Duration | FTL | |
| Maximum Message Size | FTL, EMS | Limit for the size of inbound messages. Publish calls in WebSocket clients fail when a message exceeds this limit. |
| Maximum Pending Acknowledgments | FTL, EMS |
When the backlog of unacknowledged messages outbound to a WebSocket client on the channel exceeds this limit, the service stops transferring messages to the client. When the service receives acknowledgments, it resumes sending messages to the client. Note: For eFTL 6.8.0 and later, if an eFTL client specifies a value for max_ pending_acks that is greater than the value configured for the channel, the client's value is rounded down to the channel's value.
|
| WebSocket Server-> WebSocket Client Heartbeat Interval | FTL, EMS |
The TIBCO WebSocket server sends heartbeats at this interval to clients on the channel. Clients respond to heartbeats, indicating that they are still connected. Zero prevents the service from sending heartbeats. If you set this parameter to zero, you must also set 'client timeout' to zero. |
| Client Timeout | FTL, EMS |
The TIBCO WebSocket server disconnects a client after this interval since the last communication from the client, including heartbeat responses and message publishing calls. Zero instructs the service not to disconnect clients. |
| Client Reconnect Timeout | FTL, EMS | When a client disconnects from the WebSocket server, the service buffers outbound messages so that the client can receive them when it reconnects. After this interval elapses, the service deletes outbound messages it was buffering for the client. |
| Publish Group | FTL, EMS | Only WebSocket clients in this authorization group can publish messages on this channel. |
| Subscribe Group | FTL, EMS | Only WebSocket clients in this authorization group can subscribe on this channel. |
| Topic Prefix | EMS |
Optional. Channels isolate message streams; however, the EMS server merges message streams that share a topic name. A topic prefix can prevent crosstalk among channels through the EMS server if you supply a distinct prefix string for each EMS channel. If present, the channel prepends this prefix string to EMS topic names at each publish and subscribe operation. Topic prefix strings are transparent to WebSocket client applications. EMS administrators must explicitly allow these prefix strings in topic names. If absent, separate channels could carry crosstalk. |
| Delivery Mode | EMS | Required for EMS channels. Instructs the EMS server concerning messages forwarded by the WebSocket server. |
| Ack Mode | EMS | Required for EMS channels. Specifies how received messages are acknowledged to the EMS server. Select dups-ok for better performance at a risk of a larger number of redelivered messages. |