Send message from netty code to actor system

318 views
Skip to first unread message

Jabbar Azam

unread,
Jan 27, 2015, 4:29:43 AM1/27/15
to akka...@googlegroups.com
Hello,

How do I send a message from java non actor based code into an actor system? The code will be running on the same node and will be part of the same source code. So netty will be running, receiving packets, which will send any received packets into an actor system. The actor system will process the packets and then send the response payload back to the netty code.


Jabbar Azam

unread,
Jan 27, 2015, 5:03:25 AM1/27/15
to akka...@googlegroups.com
I think I need to look at typedactors.

Björn Antonsson

unread,
Jan 30, 2015, 7:38:14 AM1/30/15
to akka...@googlegroups.com
Hi,

Are you sure that you need to block the sending code while the actor does its work? Is there an asynchronous API in netty that you can use where the actor would invoke a callback when it has finished processing the packet?

B/
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

-- 
Björn Antonsson
Typesafe – Reactive Apps on the JVM
twitter: @bantonsson

Ngoc Dao

unread,
Feb 2, 2015, 4:45:33 AM2/2/15
to akka...@googlegroups.com
You can try Xitrum web framework (scroll down to see the Akka actor example):
http://xitrum-framework.github.io/

Jabbar Azam

unread,
Feb 3, 2015, 8:32:21 AM2/3/15
to akka...@googlegroups.com
Hello,

Sorry for the late reply. For some reason the forum messages didn't get forwarded to my email.

I was thinking of using typedactors because I am trying to integrate non actor code(cloudhopper SMPP which uses netty) into an actor system. Netty does use callbacks so I can use asynchronous behaviour.

Do you think I could encapsulate a netty channel inside an actor? A netty channel can call callbacks whenever something changes in the channel.

Jabbar Azam

unread,
Feb 3, 2015, 8:33:44 AM2/3/15
to akka...@googlegroups.com
Hello,

I can't use Xitrum. I'm using Cloudhopper-smpp which uses netty. I don't fancy writing a SMPP library.

Jabbar Azam

unread,
Feb 3, 2015, 8:48:47 AM2/3/15
to akka...@googlegroups.com
Oops I meant channel handler.

Jabbar Azam

unread,
Feb 4, 2015, 8:09:19 AM2/4/15
to akka...@googlegroups.com
I found some nice example showing integration of netty with akka on github. This is what I'm looking at https://github.com/gibffe/fuse specifically https://github.com/gibffe/fuse/blob/master/src/main/java/com/sulaco/fuse/netty/FuseChannelHandler.java

Its embarrassingly simple :)

Ngoc Dao

unread,
Feb 4, 2015, 4:06:11 PM2/4/15
to akka...@googlegroups.com
Generally there are 2 ways to design for this problem:

Once you have an actor reference, you can send things to it. So you can simply do this:
targetActorRef ! myThing

When the actor is done with the processing, it will call:
myThing.myMethod

This design is OK when the target actor is very reliable and it lies in the same node with myThing.

Another way, is to use an actor to wrap around myThing. This wrapper actor will communicate with targetActorRef. It may watch targetActorRef to handle the case when targetActorRef dies, targetActorRef doesn't respond after some timeout etc.

Jabbar Azam

unread,
Feb 4, 2015, 5:09:18 PM2/4/15
to akka...@googlegroups.com
After alot of head scratching I came to same conclusions as you. It's good to see somebody else having the same ideas.

Muthukumaran Kothandaraman

unread,
Feb 6, 2015, 5:54:37 AM2/6/15
to akka...@googlegroups.com
Few things to take care of using a router at InboundHandler

- ensuring that routees are available before the connections are being accepted
- ensuring that ChannelContextHandler - passed in message, is not stored by routee actor internally for any purposes. This should be sufficient for pure req/reply pattern

Regards
Muthu

Jabbar Azam

unread,
Feb 7, 2015, 3:47:26 AM2/7/15
to akka...@googlegroups.com
Hello Muthukumaran,

I'm not actually using nettty but cloudhopper-smpp. It uses netty. I couldn't work out how to integrate cloudhopper-smpp with Akka and hence I was 
looking at netty to understand ways of integrating cloudhopper-smpp to netty. 

I'm wrapping each SmppSession inside it's own actor.
Reply all
Reply to author
Forward
0 new messages