tcp ソケットに接続して対話 (双方向) を行う方法の簡単で短い例を探しています。つまり、tcp プロセス (ソケット) と通信するための( akka-camelまたはnettyライブラリを使用して) scala 2.10 アプリケーションを作成する方法です。
インターネットで多くの文献を見つけましたが、すべてが古い (scala 2.10 を探している) か、非推奨でした。
前もって感謝します!
tcp ソケットに接続して対話 (双方向) を行う方法の簡単で短い例を探しています。つまり、tcp プロセス (ソケット) と通信するための( akka-camelまたはnettyライブラリを使用して) scala 2.10 アプリケーションを作成する方法です。
インターネットで多くの文献を見つけましたが、すべてが古い (scala 2.10 を探している) か、非推奨でした。
前もって感謝します!
うーん、私はこのようなものを探していました:
1. サーバー:
import akka.actor._
import akka.camel.{ Consumer, CamelMessage }
class Ser extends Consumer {
def endpointUri = "mina2:tcp://localhost:9002"
def receive = {
case message: CamelMessage => {
//log
println("looging, question:" + message)
sender ! "server response to request: " + message.bodyAs[String] + ", is NO"
}
case _ => println("I got something else!??!!")
}
}
object server extends App {
val system = ActorSystem("some")
val spust = system.actorOf(Props[Ser])
}
2. クライアント:
import akka.actor._
import akka.camel._
import akka.pattern.ask
import scala.concurrent.duration._
import akka.util.Timeout
import scala.concurrent.Await
class Producer1 extends Actor with Producer {
def endpointUri = "mina2:tcp://localhost:9002"
}
object Client extends App {
implicit val timeout = Timeout(10 seconds)
val system2 = ActorSystem("some-system")
val producer = system2.actorOf(Props[Producer1])
val future = producer.ask("Hello, can I go to cinema?")
val result = Await.result(future, timeout.duration)
println("Is future over?="+future.isCompleted+";;result="+result)
println("Ende!!!")
system2.shutdown
println("system2 ended:"+system2.isTerminated)
http://doc.akka.io/docs/akka/2.1.0/scala/camel.htmlに書かれ、よく説明されていることはすべて知っています。しかし、初心者の場合は、非常に単純なクライアント/サーバー アプリケーションを構築するために、すべてを何度も読む必要があります。ある種の「動機の例」は大歓迎だと思います。
Akka のドキュメントを確認したと思いますか? http://doc.akka.io/docs/akka/2.1.0/scala/camel.html
Akka 2.1.0 では、akka-camel モジュールが改良され、完全に最新の状態になりました (以前は少し古かった)。
実際のユースケースをカバーする camel-akka ビデオ プレゼンテーションもあります: http://www.davsclaus.com/2012/04/great-akka-and-camel-presentation-video.html