aboutsummaryrefslogtreecommitdiff
path: root/node_modules/mysql2/lib/commands/ping.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/mysql2/lib/commands/ping.js')
-rw-r--r--node_modules/mysql2/lib/commands/ping.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/node_modules/mysql2/lib/commands/ping.js b/node_modules/mysql2/lib/commands/ping.js
new file mode 100644
index 0000000..dc820ef
--- /dev/null
+++ b/node_modules/mysql2/lib/commands/ping.js
@@ -0,0 +1,36 @@
+'use strict';
+
+const Command = require('./command');
+const CommandCode = require('../constants/commands');
+const Packet = require('../packets/packet');
+
+// TODO: time statistics?
+// usefull for queue size and network latency monitoring
+// store created,sent,reply timestamps
+class Ping extends Command {
+ constructor(callback) {
+ super();
+ this.onResult = callback;
+ }
+
+ start(packet, connection) {
+ const ping = new Packet(
+ 0,
+ Buffer.from([1, 0, 0, 0, CommandCode.PING]),
+ 0,
+ 5
+ );
+ connection.writePacket(ping);
+ return Ping.prototype.pingResponse;
+ }
+
+ pingResponse() {
+ // TODO: check it's OK packet. error check already done in caller
+ if (this.onResult) {
+ process.nextTick(this.onResult.bind(this));
+ }
+ return null;
+ }
+}
+
+module.exports = Ping;