StepflowStepflow

WebSocket Trigger

Trigger workflows from WebSocket messages

WebSocket Trigger

The WebSocket trigger allows you to initiate workflows by connecting to a WebSocket server and listening for incoming messages. It supports auto-reconnect with configurable retry logic.

Installation

pnpm add @stepflowjs/trigger-websocket

Usage

import { WebSocketTrigger } from "@stepflowjs/trigger-websocket";

const trigger = new WebSocketTrigger({
  url: "wss://api.example.com/events",
  messageType: "json",
  reconnect: true,
  reconnectInterval: 5000,
  maxReconnectAttempts: 10,
});

await trigger.start(async (event) => {
  console.log("Received WebSocket message:", event.data);
  await stepflow.trigger("process-event", event.data);
});

Auto-Reconnect

The WebSocketTrigger can automatically attempt to reconnect if the connection is lost. You can configure the interval between attempts and the maximum number of attempts.

Configuration

OptionTypeDefaultDescription
urlstringrequiredWebSocket server URL to connect to
protocolsstring[]undefinedWebSocket sub-protocols
headersobjectundefinedCustom headers for connection
reconnectbooleantrueAuto-reconnect on disconnect
reconnectIntervalnumber5000Reconnect interval in milliseconds
maxReconnectAttemptsnumber10Maximum reconnect attempts
messageType"json" | "text""json"Message parsing type

On this page