Usare ZeroMQ in Kotlin
ZeroMQ è una libreria per lo scambio di messaggi tra un client ed un server di tipo brokerless!
Sostanzialmente vuol dire che nella libreria è già incluso tutto quello che ci serve, senza altre configurazioni.
In questo articolo vediamo un esempio di utilizzo in Kotlin.
Nello specifico useremo la libreria JeroMQ, che potete installare con Maven:
<dependency>
<groupId>org.zeromq</groupId>
<artifactId>jeromq</artifactId>
<version>0.5.2</version>
</dependency>
Qui sotto un esempio di server:
import org.zeromq.SocketType
import org.zeromq.ZContext
import org.zeromq.ZMQ
fun main(args: Array<String>) {
ZContext().use { context ->
println("Server avviato...")
val socket: ZMQ.Socket = context.createSocket(SocketType.REP)
socket.bind("tcp://*:5555")
while (!Thread.currentThread().isInterrupted) {
val reply: ByteArray = socket.recv(0)
println("Dato ricevuto: [" + String(reply, ZMQ.CHARSET) + "]")
val response = "CIAO DAL SERVER!"
socket.send(response.toByteArray(ZMQ.CHARSET), 0)
}
}
}
Se invece volessimo creare un client:
import org.zeromq.SocketType
import org.zeromq.ZContext
import org.zeromq.ZMQ
fun main(args: Array<String>) {
ZContext().use { context ->
println("Connessione al server...")
val socket = context.createSocket(SocketType.REQ)
socket.connect("tcp://localhost:5555")
for (requestNbr in 0..9) {
val request = "CIAO DAL CLIENT!"
socket.send(request.toByteArray(ZMQ.CHARSET), 0)
val reply = socket.recv(0)
println("RISPOSTA DAL SERVER: " + String(reply, ZMQ.CHARSET) + " " + requestNbr)
}
}
}
Enjoy!
kotlin zeromq jeromq maven
Commentami!