Skip to content

Commit c008481

Browse files
committed
Added DHT node sharing via websocket.
1 parent 2ea4b80 commit c008481

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

src/main/kotlin/network/rpc/RPCManager.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import io.javalin.websocket.WsConnectContext
77
import io.javalin.websocket.WsContext
88
import kotlinx.serialization.encodeToString
99
import kotlinx.serialization.json.Json
10+
import logging.Logger
1011
import network.kademlia.Kademlia
1112
import java.util.concurrent.TimeUnit
1213

@@ -30,6 +31,19 @@ open class RPCManager(configuration: Configuration) : Kademlia(configuration) {
3031
webServer.ws("/") {
3132
it.onConnect(this::onConnect)
3233
it.onClose(this::onClose)
34+
it.onMessage { context ->
35+
val message = context.message()
36+
when (message) {
37+
"dht" -> {
38+
context.send(Json.encodeToString(knownNodes.values))
39+
}
40+
41+
else -> {
42+
Logger.debug("A message of $message is being ignored via WS")
43+
}
44+
}
45+
46+
}
3347
}
3448
}
3549
}
@@ -47,6 +61,7 @@ open class RPCManager(configuration: Configuration) : Kademlia(configuration) {
4761
.add(webSocket)
4862
}
4963
sendToSubscribed(Topic.Logging, "Hello, this is Nion node!")
64+
sendToSubscribed(Topic.Logging, Json.encodeToString(knownNodes.values))
5065
}
5166

5267
/**

0 commit comments

Comments
 (0)