mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-07 16:33:08 +00:00
* add config for ws support * code clean up * code clean up * Integrate both ws and tcp transport * change ws default port * resolve review comments Signed-off-by: rshiv <reeshav96@gmail.com> * Unit test debug Signed-off-by: rshiv <reeshav96@gmail.com> * Websocket tests addition Signed-off-by: rshiv <reeshav96@gmail.com> * websocket failure unittest addition Signed-off-by: rshiv <reeshav96@gmail.com> * Commented testcase related to incorrect helper function Signed-off-by: rshiv <reeshav96@gmail.com> * Add wireAddr validation Signed-off-by: rshiv <reeshav96@gmail.com> * CLoses issue 756 Signed-off-by: rshiv <reeshav96@gmail.com> * Websocket tests addition Signed-off-by: rshiv <reeshav96@gmail.com> * Minor Code clean up * review comment fixes Signed-off-by: rshiv <reeshav96@gmail.com> * Review comment fix * Update tests/v2/test_wakunode.nim Co-authored-by: oskarth <ot@oskarthoren.com> * Update tests/v2/test_wakunode.nim Co-authored-by: oskarth <ot@oskarthoren.com> * review comment fix Signed-off-by: rshiv <reeshav96@gmail.com> * Changelog update Signed-off-by: rshiv <reeshav96@gmail.com> * chat2 var change Signed-off-by: rshiv <reeshav96@gmail.com> * test flag changes Signed-off-by: rshiv <reeshav96@gmail.com> Co-authored-by: oskarth <ot@oskarthoren.com>
55 lines
1.6 KiB
Nim
55 lines
1.6 KiB
Nim
# Waku Switch utils.
|
|
import
|
|
std/[options, sequtils],
|
|
chronos, chronicles,
|
|
stew/byteutils,
|
|
eth/keys,
|
|
libp2p/crypto/crypto,
|
|
libp2p/protocols/pubsub/gossipsub,
|
|
libp2p/nameresolving/dnsresolver,
|
|
libp2p/nameresolving/nameresolver,
|
|
libp2p/builders,
|
|
libp2p/transports/[transport, tcptransport, wstransport]
|
|
|
|
proc withWsTransport*(b: SwitchBuilder): SwitchBuilder =
|
|
b.withTransport(proc(upgr: Upgrade): Transport = WsTransport.new(upgr))
|
|
|
|
proc newWakuSwitch*(
|
|
privKey = none(crypto.PrivateKey),
|
|
address = MultiAddress.init("/ip4/127.0.0.1/tcp/0").tryGet(),
|
|
wsAddress = MultiAddress.init("/ip4/127.0.0.1/tcp/1").tryGet(),
|
|
secureManagers: openarray[SecureProtocol] = [
|
|
SecureProtocol.Noise,
|
|
],
|
|
transportFlags: set[ServerFlags] = {},
|
|
rng = crypto.newRng(),
|
|
inTimeout: Duration = 5.minutes,
|
|
outTimeout: Duration = 5.minutes,
|
|
maxConnections = MaxConnections,
|
|
maxIn = -1,
|
|
maxOut = -1,
|
|
maxConnsPerPeer = MaxConnectionsPerPeer,
|
|
nameResolver: NameResolver = nil,
|
|
wsEnabled: bool = false): Switch
|
|
{.raises: [Defect, LPError].} =
|
|
|
|
var b = SwitchBuilder
|
|
.new()
|
|
.withRng(rng)
|
|
.withMaxConnections(maxConnections)
|
|
.withMaxIn(maxIn)
|
|
.withMaxOut(maxOut)
|
|
.withMaxConnsPerPeer(maxConnsPerPeer)
|
|
.withMplex(inTimeout, outTimeout)
|
|
.withNoise()
|
|
.withTcpTransport(transportFlags)
|
|
.withNameResolver(nameResolver)
|
|
if privKey.isSome():
|
|
b = b.withPrivateKey(privKey.get())
|
|
if wsEnabled == true:
|
|
b = b.withAddresses(@[wsAddress, address])
|
|
b = b.withWsTransport()
|
|
else :
|
|
b = b.withAddress(address)
|
|
|
|
b.build() |