发送一个TCP / IP消息AKKA演员

时间:2012-10-18 16:48:57

标签: java scala tcp akka actor

是否可以通过TCP / IP向AKKA演员发送消息?

例如,写一个客户端,如:

mySocket = new Socket("theactor", 75);
os = new DataOutputStream(smtpSocket.getOutputStream());
os.writeBytes("HELLO");    

那可以向AKKA演员发送消息吗?

由于

3 个答案:

答案 0 :(得分:4)

详细阐述Viktor的回应,最小的例子是

import akka.actor._
import ActorDSL._
import java.net.InetSocketAddress

object Server extends App {
  implicit val sys = ActorSystem("telnet")

  actor(new Act with ActorLogging {
    IOManager(context.system) listen new InetSocketAddress(1234)
    become {
      case IO.NewClient(server) ⇒
        server.accept()
      case IO.Read(handle, bytes) ⇒
        log.info("got {} from {}", bytes.decodeString("utf-8"), handle)
    }
  })
}

然后在另一个shell中启动telnet localhost 1234并开始输入,你会在每行看到一个actor日志消息。

答案 1 :(得分:1)

是的,不。您必须使用Akka IO模块或Akka Camel模块(使用netty或mina组件):

http://doc.akka.io/docs/akka/snapshot/scala/io.html

http://doc.akka.io/docs/akka/snapshot/java/camel.html

答案 2 :(得分:0)

如果您尝试使用IP在远程actor上发送消息,为什么不尝试使用Akka Remote Actor系统? "Read it here"