Skip to content

Instantly share code, notes, and snippets.

@LethalMaus
Created February 11, 2026 19:59
Show Gist options
  • Select an option

  • Save LethalMaus/21350ef2e4e6cb4039020de49517580d to your computer and use it in GitHub Desktop.

Select an option

Save LethalMaus/21350ef2e4e6cb4039020de49517580d to your computer and use it in GitHub Desktop.
ZeroMq.kt
fun connect() {
if (isRunning) return
CoroutineScope(Dispatchers.IO).launch {
try {
context = ZContext()
subPort?.let {
subSocket = context?.createSocket(SocketType.SUB)
subSocket?.subscribe("".toByteArray())
subSocket?.connect("tcp://127.0.0.1:$subPort")
Log.d(TAG, "Subbing to $subPort")
startReceiving()
}
pubPort?.let {
pubSocket = context?.createSocket(SocketType.PUB)
pubSocket?.connect("tcp://127.0.0.1:$pubPort")
Log.d(TAG, "Pubbing to $pubPort")
}
isRunning = subSocket != null || pubSocket != null
onConnectionChanged?.let {
CoroutineScope(Dispatchers.Main).launch { it.invoke(true) }
}
} catch (e: Exception) {
Log.e(TAG, "Error connecting to server: ${e.message}", e)
onConnectionChanged?.let {
CoroutineScope(Dispatchers.Main).launch { it.invoke(false) }
}
close()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment