Connection: Comment events
...JSDoc's syntax is *bad* and outdated for events :-/
This commit is contained in:
parent
7d3161433a
commit
0b82e34273
1 changed files with 31 additions and 0 deletions
|
@ -17,6 +17,12 @@ import { encrypt_bytes, decrypt_bytes } from '../crypto/secretbox.mjs';
|
|||
* Represents a connection to a single endpoint.
|
||||
* @param {string} secret_join The shared join secret, encoded as base64
|
||||
* @param {net.Socket?} socket Optional. A pre-existing socket to take over and manage.
|
||||
*
|
||||
* @event Connection#connect The initial connection setup is complete.
|
||||
* @event Connection#rekey The session key has been re-exchanged.
|
||||
* @event Connection#destroy The connection has been closed
|
||||
* @event Connection#message A message has been received.
|
||||
* @event Connection#message-EVENTNAME A message with a given event name has been received
|
||||
*/
|
||||
class Connection extends EventEmitter {
|
||||
/**
|
||||
|
@ -74,6 +80,11 @@ class Connection extends EventEmitter {
|
|||
await this.rekey();
|
||||
|
||||
// We can await .init() or .connect() - this is just another optiom
|
||||
/**
|
||||
* The initial connection setup is complete.
|
||||
* @event Connection#connect
|
||||
* @type {void}
|
||||
*/
|
||||
this.emit(`connect`);
|
||||
}
|
||||
|
||||
|
@ -83,6 +94,11 @@ class Connection extends EventEmitter {
|
|||
this.session_key = await rekey(this, this.session_key);
|
||||
this.rekey_interval = this.rekey_interval_base + crypto.randomInt(0, 15 * 60 * 1000);
|
||||
this.rekey_last = new Date();
|
||||
/**
|
||||
* The session key has been re-exchanged.
|
||||
* @event Connection#rekey
|
||||
* @type {void}
|
||||
*/
|
||||
this.emit("rekey");
|
||||
}
|
||||
catch(error) {
|
||||
|
@ -102,6 +118,11 @@ class Connection extends EventEmitter {
|
|||
await this.socket.end();
|
||||
await this.socket.destroy();
|
||||
}
|
||||
/**
|
||||
* The connection has been closed
|
||||
* @event Connection#destroy
|
||||
* @type {void}
|
||||
*/
|
||||
this.emit("destroy");
|
||||
}
|
||||
|
||||
|
@ -130,7 +151,17 @@ class Connection extends EventEmitter {
|
|||
// Set and forget here
|
||||
this.rekey();
|
||||
}
|
||||
/**
|
||||
* A message has been received.
|
||||
* @event Connection#message
|
||||
* @type {string,object} The name of the event, followed by the message content.
|
||||
*/
|
||||
this.emit("message", msg.event, msg.message);
|
||||
/**
|
||||
* A message with a specific event name has been received.
|
||||
* @event Connection#message-EVENTNAME
|
||||
* @type {object} The message content.
|
||||
*/
|
||||
this.emit(`message-${msg.event}`, msg.message);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue