以下のコードを使用してメッセージを正常に送信できる小さなRepサーバーがあります。
import akka.actor.Actor
import akka.zeromq._
import org.zeromq.ZMQ
import akka.util.ByteString
class Sender extends Actor {
override def preStart(): Unit = {
val context = ZMQ.context(1)
val socket = context.socket(ZMQ.REQ)
socket.connect ("tcp://127.0.0.1:1234")
socket.send("test".getBytes(), 0)
println("Sent!")
//val reqSocket = ZeroMQExtension(context.system).newReqSocket(
// Array(Connect("tcp://127.0.0.1:1234")))
//reqSocket ! ZMQMessage(ByteString("test"))
}
def receive : Receive = {
case _ =>
}
}
ただし、代わりにコメント アウトされた部分を使用すると (そして定義内の他のすべてをコメント アウトすると)、サーバーはメッセージを検出できません。を使用する場合、メッセージを送信するために他の種類の手順を使用することになっていますZeroMQExtension
か? ZeroMQ バージョン 2.2.0 を使用しています。
参考までに、サーバーコードは次のとおりです。
import akka.actor._
import akka.zeromq._
class ReplyActor extends Actor {
def receive = {
case _ =>
println("Received something!")
}
}
object Replyer extends App {
val system = ActorSystem("zmq")
val serverSocket = ZeroMQExtension(system).newRepSocket(
Array(Bind("tcp://127.0.0.1:1234"),
Listener(system.actorOf(Props[ReplyActor]))))
}