Fix bug preventing XMPP client from connecting
This commit is contained in:
1 parent
3134b63b68
commit
ab80a62c5c
1 file changed
+16
-22
+16
-22
@@ -321,16 +321,19 @@ export default class XmppClient extends EventEmitter {
|
|||||||
this._iqStanzaCallbacks = new Map();
|
this._iqStanzaCallbacks = new Map();
|
||||||
}
|
}
|
||||||
|
|
||||||
static connect(opts: XmppClientOptions): Promise<XmppClient> {
|
static async connect(opts: XmppClientOptions): Promise<XmppClient> {
|
||||||
|
function connectSocket(host: string, port: number): Promise<net.Socket> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let socket = new net.Socket();
|
const socket = new net.Socket();
|
||||||
socket.on("error", reject);
|
socket.on("error", reject);
|
||||||
|
socket.connect(port, host, () => {
|
||||||
socket.connect(
|
|
||||||
opts.port || 5222,
|
|
||||||
opts.host,
|
|
||||||
void async function () {
|
|
||||||
socket.removeListener("error", reject);
|
socket.removeListener("error", reject);
|
||||||
|
resolve(socket);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
let socket = await connectSocket(opts.host, opts.port || 5222);
|
||||||
try {
|
try {
|
||||||
let status = 1;
|
let status = 1;
|
||||||
while (status) {
|
while (status) {
|
||||||
@@ -338,15 +341,13 @@ export default class XmppClient extends EventEmitter {
|
|||||||
socket = await upgradeTls(socket, opts.host);
|
socket = await upgradeTls(socket, opts.host);
|
||||||
status = await xmppStream(
|
status = await xmppStream(
|
||||||
socket,
|
socket,
|
||||||
init(
|
init(socket, opts.host, opts.username, opts.password, opts.resource),
|
||||||
socket,
|
|
||||||
opts.host,
|
|
||||||
opts.username,
|
|
||||||
opts.password,
|
|
||||||
opts.resource,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
} catch (err) {
|
||||||
|
socket.destroy();
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
|
||||||
const client = new XmppClient();
|
const client = new XmppClient();
|
||||||
client._socket = socket;
|
client._socket = socket;
|
||||||
@@ -357,14 +358,7 @@ export default class XmppClient extends EventEmitter {
|
|||||||
socket.on("error", client._onError.bind(client));
|
socket.on("error", client._onError.bind(client));
|
||||||
if (opts.timeout)
|
if (opts.timeout)
|
||||||
socket.setTimeout(opts.timeout, client.close.bind(client));
|
socket.setTimeout(opts.timeout, client.close.bind(client));
|
||||||
resolve(client);
|
return client;
|
||||||
} catch (err) {
|
|
||||||
socket.destroy();
|
|
||||||
reject(err);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
close(): void {
|
close(): void {
|
||||||
|
|||||||
Reference in new issue
Block a user