fix: socket options

This commit is contained in:
SamuelScheit
2023-05-12 18:02:41 +02:00
parent 6ab9ca5714
commit 6ecc5a8757
4 changed files with 14 additions and 15 deletions

View File

@@ -12,7 +12,10 @@ export class MobileSocket extends Socket {
}
override connect() {
return super.connect(MOBILE_PORT, MOBILE_ENDPOINT, () => {
return super.connect({
host: MOBILE_ENDPOINT,
port: MOBILE_PORT,
}, () => {
this.emit('open')
})
}
@@ -38,6 +41,6 @@ export class MobileSocket extends Socket {
}
send(data: unknown, cb?: ((err?: Error | undefined) => void) | undefined) {
return super.write(data as Uint8Array | string, cb as ((err?: Error | undefined) => void))
return super.write(data as Uint8Array | string, undefined, cb as ((err?: Error | undefined) => void))
}
}

View File

@@ -32,7 +32,7 @@ export const makeSocket = (config: SocketConfig) => {
config.mobile = config.mobile || config.auth.creds.registered
const ws = new MobileSocket(config)
ws.setMaxListeners(0)
ws.setMaxListeners?.(0)
// if not mobile or already registered -> auto connect
if(!config.mobile || config.auth.creds.registered) {
@@ -188,6 +188,9 @@ export const makeSocket = (config: SocketConfig) => {
let helloMsg: proto.IHandshakeMessage = {
clientHello: { ephemeral: ephemeralKeyPair.public }
}
console.log(helloMsg)
console.log(Buffer.from(ephemeralKeyPair.public).toString('base64'))
console.log(ephemeralKeyPair.public.length)
helloMsg = proto.HandshakeMessage.fromObject(helloMsg)
logger.info({ browser, helloMsg }, 'connected to WA')
@@ -627,7 +630,7 @@ function mapWebSocketError(handler: (err: Error) => void) {
return (error: Error) => {
handler(
new Boom(
`WebSocket Error (${error.message})`,
`WebSocket Error (${error?.message})`,
{ statusCode: getCodeFromWSError(error), data: error }
)
)

View File

@@ -355,13 +355,13 @@ const UNEXPECTED_SERVER_CODE_TEXT = 'Unexpected server response: '
export const getCodeFromWSError = (error: Error) => {
let statusCode = 500
if(error.message.includes(UNEXPECTED_SERVER_CODE_TEXT)) {
const code = +error.message.slice(UNEXPECTED_SERVER_CODE_TEXT.length)
if(error?.message?.includes(UNEXPECTED_SERVER_CODE_TEXT)) {
const code = +error?.message.slice(UNEXPECTED_SERVER_CODE_TEXT.length)
if(!Number.isNaN(code) && code >= 400) {
statusCode = code
}
} else if(
(error as any).code?.startsWith('E')
(error as any)?.code?.startsWith('E')
|| error?.message?.includes('timed out')
) { // handle ETIMEOUT, ENOTFOUND etc
statusCode = 408

View File

@@ -88,17 +88,10 @@ export const generateRegistrationNode = (
const appVersionBuf = createHash('md5')
.update(config.version.join('.')) // join as string
.digest()
const browserVersion = config.browser[2].split('.')
const companion: proto.IDeviceProps = {
os: config.browser[0],
version: {
primary: +(browserVersion[0] || 0),
secondary: +(browserVersion[1] || 1),
tertiary: +(browserVersion[2] || 0),
},
platformType: proto.DeviceProps.PlatformType[config.browser[1].toUpperCase()]
|| proto.DeviceProps.PlatformType.UNKNOWN,
platformType: proto.DeviceProps.PlatformType.DESKTOP,
requireFullSync: config.syncFullHistory,
}