feat(add-routing-info): initial commit (#773)

This commit is contained in:
Rajeh Taher
2024-05-15 18:34:37 +03:00
committed by GitHub
parent 2ae664c655
commit 0eaa5af909
4 changed files with 34 additions and 3 deletions

View File

@@ -76,6 +76,10 @@ export const makeSocket = (config: SocketConfig) => {
url = new URL(`tcp://${MOBILE_ENDPOINT}:${MOBILE_PORT}`)
}
if(!config.mobile && url.protocol === 'wss' && authState?.creds?.routingInfo) {
url.searchParams.append('ED', authState.creds.routingInfo.toString('base64url'))
}
const ws = config.socket ? config.socket : config.mobile ? new MobileSocketClient(url, config) : new WebSocketClient(url, config)
ws.connect()
@@ -88,7 +92,8 @@ export const makeSocket = (config: SocketConfig) => {
keyPair: ephemeralKeyPair,
NOISE_HEADER: config.mobile ? MOBILE_NOISE_HEADER : NOISE_WA_HEADER,
mobile: config.mobile,
logger
logger,
routingInfo: authState?.creds?.routingInfo
})
const { creds } = authState
@@ -671,6 +676,14 @@ export const makeSocket = (config: SocketConfig) => {
end(new Boom('Multi-device beta not joined', { statusCode: DisconnectReason.multideviceMismatch }))
})
ws.on('CB:ib,,edge_routing', (node: BinaryNode) => {
const edgeRoutingNode = getBinaryNodeChild(node, 'edge_routing')
const routingInfo = getBinaryNodeChild(edgeRoutingNode, 'routing_info')
if(routingInfo?.content) {
authState.creds.routingInfo = Buffer.from(routingInfo?.content as Uint8Array)
}
})
let didStartBuffer = false
process.nextTick(() => {
if(creds.me?.id) {