You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "David Handermann (Jira)" <ji...@apache.org> on 2025/03/18 17:21:00 UTC
[jira] [Updated] (NIFI-14378) New Processor: Socket Client Processor for Sending and Receiving Data
[ https://issues.apache.org/jira/browse/NIFI-14378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Handermann updated NIFI-14378:
------------------------------------
Affects Version/s: (was: 2.3.0)
> New Processor: Socket Client Processor for Sending and Receiving Data
> ---------------------------------------------------------------------
>
> Key: NIFI-14378
> URL: https://issues.apache.org/jira/browse/NIFI-14378
> Project: Apache NiFi
> Issue Type: New Feature
> Components: Extensions
> Reporter: HamidReza Ireh
> Assignee: HamidReza Ireh
> Priority: Major
> Labels: FeatureRequest, Processor, SocketClient, networking
>
> A new processor is requested that acts as a Socket Client, allowing users to send data to a server over a socket connection and receive responses. The processor should be configurable to support different use cases, including sending input data from a FlowFile and handling responses from the server.
> *Features & Requirements*
> The processor should:
> # *Establish a connection* to a configurable server and port.
> # *Send input data* (if any) from the FlowFile content or attributes to the server.
> # {*}Receive response data{*}, if applicable, and route it to the success relationship.
> # *Support configurable options* such as:
> ** Hostname/IP and Port
> ** Connection Timeout and Read Timeout
> ** Socket Type (TCP/UDP)
> ** Encoding (UTF-8, ASCII, etc.)
> ** Request and Response handling (Delimited messages, raw streams, etc.)
> ** Retry mechanism and error handling
> # {*}Handle different response scenarios{*}, such as:
> No response required (fire-and-forget)
> Read response until a delimiter
> Read response of a fixed size
> # *Support dynamic properties* to allow flexible configurations based on use cases.
> # *Be compatible with NiFi 2.x* and follow the best practices for NiFi processor development.
> *Use Cases*
> * Connecting to external TCP/UDP servers for real-time data exchange.
> * Integrating with legacy systems that require socket-based communication.
> * Sending real-time commands and receiving responses in a flow-based architecture.
> *Alternatives Considered*
> Currently, users may use ExecuteScript or custom processors to achieve similar functionality, but a dedicated Socket Client Processor would provide a more streamlined and configurable solution.
> *Additional Notes*
> This processor can be similar in concept to InvokeHTTP but designed for raw socket communication.
> Proper exception handling and logging should be implemented to ensure reliable operation.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)