everything
This commit is contained in:
45
src/QMPClient.ts
Normal file
45
src/QMPClient.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import EventEmitter from "events";
|
||||
import { Socket } from "net";
|
||||
|
||||
export default class QMPClient extends EventEmitter {
|
||||
socketfile : string;
|
||||
socket : Socket;
|
||||
connected : boolean;
|
||||
sentConnected : boolean;
|
||||
constructor(socketfile : string) {
|
||||
super();
|
||||
this.socketfile = socketfile;
|
||||
this.socket = new Socket();
|
||||
this.connected = false;
|
||||
this.sentConnected = false;
|
||||
}
|
||||
connect() {
|
||||
if (this.connected) return;
|
||||
try {
|
||||
this.socket.connect(this.socketfile);
|
||||
} catch (e) {
|
||||
this.emit("")
|
||||
}
|
||||
this.connected = true;
|
||||
this.socket.on('data', (data) => this.onData(data));
|
||||
this.socket.on('close', () => this.onClose());
|
||||
}
|
||||
|
||||
private onData(data : Buffer) {
|
||||
var msgraw = data.toString();
|
||||
var msg = JSON.parse(msgraw);
|
||||
console.log(msg);
|
||||
if (msg.QMP) {
|
||||
if (this.sentConnected) return;
|
||||
this.socket.write(JSON.stringify({ execute: "qmp_capabilities" }));
|
||||
this.emit('connected');
|
||||
this.sentConnected = true;
|
||||
}
|
||||
}
|
||||
|
||||
private onClose() {
|
||||
this.connected = false;
|
||||
this.sentConnected = false;
|
||||
this.emit('close');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user