Hi David,

Thanks, will give it a shot.


Regards,
Atul Saroha



On Thu, Jun 6, 2024 at 8:15 PM David Handermann <exceptionfact...@apache.org>
wrote:

> Hi Atol,
>
> The use case you described for two-way communication over UDP is
> understandable, but I recommend taking a different approach for
> implementation.
>
> The ListenUDP Processor is designed to receive packets without sending
> a response, so the DatagramChannelDispatcher is not designed for
> two-way communication.
>
> Rather than attempting to build on these internal NiFi classes, I
> recommend researching and using the Netty framework [1] to build a
> datagram service and corresponding Processor.
>
> Netty is not trivial, but if you are able to follow the architecture,
> it provides a good foundation for building network services. Going
> through the Netty User Guide [1] provides a helpful introduction.
>
> The NettyEventServerFactory [2] in the nifi-event-transport module
> provides some low-level bootstrap support, but still requires wiring
> in custom Netty Channel Handlers.
>
> The Netty examples directory has a number of protocol implementations
> that are useful for understanding the framework. In particular, the
> quote-of-the-moment [3] example includes a UDP-based server
> implementation that could be helpful.
>
> Although this is not a simple exercise, investing the time in Netty
> should provide a much better foundation for integration than the
> purpose-built components that support the current ListenUDP Processor.
>
> Regards,
> David Handermann
>
> [1] https://netty.io/wiki/user-guide-for-4.x.html
> [2]
> https://github.com/apache/nifi/blob/main/nifi-extension-bundles/nifi-extension-utils/nifi-event-transport/src/main/java/org/apache/nifi/event/transport/netty/NettyEventServerFactory.java
> [3]
> https://github.com/netty/netty/tree/4.1/example/src/main/java/io/netty/example/qotm
>
> On Thu, Jun 6, 2024 at 9:26 AM Atul Saroha <atul...@gmail.com> wrote:
> >
> > Hi,
> >
> > We are overriding ListenUDP to support response on the Datagram channel
> to
> > support response event.  OnTrigger method calls "postProcess(context,
> > session, allEvents)" method which we can override.
> > However, DatagramChannelDispatcher is setting StandardEvent with
> > ChannelResponder as null.  Also we are not able to find any example on
> how
> > to create ChannelResponder to send udp responses.
> >
> > Kindly help us with code references which we can use to create Datagram
> > ChannelResponder to send UDP response .
> >
> >
> > Thanks and Regards,
> > Atul Saroha
> >
> >
> >
> > On Wed, Jun 5, 2024 at 10:59 AM Atul Saroha <atul...@gmail.com> wrote:
> >
> > > Hi,
> > >
> > > We are using Nifi to listen the UDP packets. However, we also have to
> send
> > > UDP packets as a response back to the calling sender IP and port using
> the
> > > same receiver port used in NiFi ListenUDP processor
> > > We are looking to write a custom processor to send UDP packets back.
> To do
> > > this, we need the handle of the Datagram socket which is used in
> ListenUDP.
> > >
> > > Please help us with some code snapshots to use the same datagram socket
> > > object in our custom processor.
> > >
> > > Thanks and Regards,
> > > Atul Saroha
> > >
>

Reply via email to