HamidReza Ireh created NIFI-14378:
-------------------------------------

             Summary: 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
    Affects Versions: 2.3.0
            Reporter: HamidReza Ireh
            Assignee: HamidReza Ireh


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)

Reply via email to