{ "FormatVersion": 3, "Id": "9b4e3c2d-a1f0-4567-89bc-def012345678"/*WebSocketServer*/, "Description": "Creates a WebSocket server to enable real-time, two-way communication with web clients.\n\nThis operator is ideal for building interactive web-based UIs, remote controls, or dashboards that can send data to and receive data from T3. It can broadcast messages to all connected clients and parse incoming messages from them.\n\nTips:\n- Use `Listen` to start and stop the server.\n- The server address will be `ws://[LocalIpAddress]:[Port]/[Path]`.\n- Messages sent from T3 via the `Message` input are broadcast to all connected clients.\n- Incoming messages from clients are available on the `LastReceived...` outputs.\n\nAKA: websocket, server, network, web, socket, real-time", "InputUis": [ { "InputId": "0a1b2c3d-4e5f-4678-9012-3456789abcde"/*Message*/, "Position": { "X": -200.0, "Y": 225.0 }, "Description": "The message to be broadcast to all connected clients.", "Usage": "Default" }, { "InputId": "1d2e3f4a-5b6c-4789-a0b1-c2d3e4f5a6b7"/*Port*/, "Position": { "X": -200.0, "Y": 75.0 }, "Description": "The port number for the server to listen on. Default is 8080." }, { "InputId": "2e725916-4143-4759-8651-e12185c658d3"/*PrintToLog*/, "Position": { "X": -200.0, "Y": 525.0 }, "Description": "If enabled, prints connection status, sent/received messages, and errors to the T3 log. Useful for debugging." }, { "InputId": "3d4f5e6a-7b8c-9d0e-f1a2-b3c4d5e6f7a8"/*Listen*/, "Position": { "X": -200.0, "Y": 0.0 }, "Description": "Starts or stops the WebSocket server." }, { "InputId": "4b5a6f7e-8d9c-4501-2345-6789abcdef01"/*ClientMessageParsingMode*/, "Position": { "X": -200.0, "Y": 600.0 }, "Description": "Defines how incoming messages from clients are parsed. 'Raw' treats the message as a single string, while other modes attempt to split or parse the message. Default is Raw." }, { "InputId": "4d3c2b1a-0f9e-4876-5432-10fedcba9876"/*SendTrigger*/, "Position": { "X": -200.0, "Y": 375.0 }, "Description": "A trigger to manually broadcast the `Message` to all connected clients. The message is sent when this value changes from 0 to 1." }, { "InputId": "5a6f7e8d-9c0b-4412-3456-789abcdef012"/*ClientMessageDelimiter*/, "Position": { "X": -200.0, "Y": 675.0 }, "Description": "The character or string to use as a delimiter when `ClientMessageParsingMode` is set to 'SpaceSeparated'. Default is a single space.", "Usage": "CustomDropdown" }, { "InputId": "73b1f8c9-9a2e-47c0-b1c8-29c34a2e7d01"/*LocalIpAddress*/, "Position": { "X": -200.0, "Y": 450.0 }, "Description": "The local IP address to bind the server to. Use '0.0.0.0 (Listen on all interfaces)' to listen on all available network interfaces. Default is '0.0.0.0 (Listen on all interfaces)'.", "Usage": "Default" }, { "InputId": "8e7d6c5b-4a3f-4123-b9c8-d7e6f5a4b3c2"/*Path*/, "Position": { "X": -200.0, "Y": 150.0 }, "Description": "The URL path for the WebSocket endpoint (e.g., '/t3-socket'). Default is empty (root path).", "Usage": "Default" }, { "InputId": "a0e35517-337a-4770-985a-34cac95b5b5f"/*SendOnChange*/, "Position": { "X": -200.0, "Y": 300.0 }, "Description": "If enabled, the `Message` is broadcast automatically to all clients whenever its content changes." } ], "SymbolChildUis": [], "OutputUis": [ { "OutputId": "2a4c9b5e-3d7f-41b0-80f5-1f92d7e0b4c8"/*Result*/, "Position": { "X": 300.0, "Y": 200.0 } }, { "OutputId": "3a2b1c0d-e9f8-4756-a3c1-b5e7d9f0a2b4"/*IsListening*/, "Position": { "X": 300.0, "Y": 300.0 } }, { "OutputId": "6f5e4d3c-2b1a-4987-ab9c-def012345678"/*ConnectionCount*/, "Position": { "X": 300.0, "Y": 400.0 } }, { "OutputId": "6f7e8d9c-0b1a-4323-4567-89abcdef0123"/*LastReceivedClientString*/, "Position": { "X": 300.0, "Y": 500.0 } }, { "OutputId": "7e8d9c0b-1a2f-4234-5678-9abcdef01234"/*LastReceivedClientParts*/, "Position": { "X": 300.0, "Y": 600.0 } }, { "OutputId": "8d9c0b1a-2f3e-4145-6789-abcdef012345"/*LastReceivedClientDictionary*/, "Position": { "X": 300.0, "Y": 700.0 } }, { "OutputId": "9c0b1a2f-3e4d-4056-789a-bcdef0123456"/*ClientMessageWasTrigger*/, "Position": { "X": 300.0, "Y": 800.0 } } ] }