We implement CAMEL-1077[1] in camel-2.15.x recently, so the ESB can talk to the 
device as a client to receive the events. But now the miss part is how can we 
share the channel between netty consumer and the netty producer. 

[1]https://issues.apache.org/jira/browse/CAMEL-1077

--  
Willem Jiang

Red Hat, Inc.
Web: http://www.redhat.com
Blog: http://willemjiang.blogspot.com (English)
http://jnn.iteye.com (Chinese)
Twitter: willemjiang  
Weibo: 姜宁willem



On April 14, 2015 at 11:33:13 PM, Carl Nygard ([email protected]) wrote:
> I have a question about the Mina/Netty TCP connector in Camel. Can
> Mina/Netty handle bi-directional comms through Camel, or do we need to
> handle this type of interface externally? We have embedded devices
> (button/light combo) that will consume TCP messages to light a device and
> initiate messages to indicate button press events. In other words, the
> device is the server, but will also spontaneously generate event messages
> back to the client/ESB. Both sides (server/device,client/ESB) expect ACKs
> for messages. So in essence, it is a 2-way communication using 1 TCP
> connection, initiated by ESB.
>  
>  
>  
> Unfortunately, Camel Netty and Mina doesn’t have the capability to support
> 2-way asynchronous (https://issues.apache.org/jira/browse/CAMEL-2624 - It’s  
> still open ticket rom 2010, 2012 + this is the duplicated ticket with some
> more context: https://issues.apache.org/jira/browse/CAMEL-1075 )
>  
>  
>  
> What we have tried so far:
>  
>  
>  
> 1. synchronous channel (before realize the limitation above): This will
> always require our ESB-EndPoint to initiate the conversation, good to
> receive ACK, but not allowing device to send Event message at will.
>  
>  
>  
> 2. asynchronous channel: (http://camel.apache.org/async.html ) With async
> model, we can send request, do something else and let the async callback to
> process the reply. However, we still have a 1-1 relationship between
> request and reply, and so in order to allow device to “initiate” the Event
> message, ESB-Endpoint will need to send more “no-op requests” to
> device-Endpoint, to catch for ACK and Event message.
>  
>  
>  
> This solution is not beautiful (quite hacking), and will not work if
> there’s no “no-op operation” (e.g. device will ACK on all messages sent).
>  
>  
>  
> 3. Look at examples in these 2 books: “Camel in Actions” (
> https://dl.dropboxusercontent.com/u/3786274/Camel%20In%20Action.pdf ) and  
> “Apache Camel Developer’s Cookbook” (
> https://dl.dropboxusercontent.com/u/3786274/Apache%20Camel%20Developer%20Cookbook.pdf
>   
> )
> but not much light on the issue we are facing.
>  
>  
> Any help?
>  
>  
> --carl
>  

Reply via email to