emotiv-ts
Version:
A Typescript library that wraps the Cortex API functionalities to communicate with Emotiv headsets
43 lines (42 loc) • 1.58 kB
JavaScript
import { AuthenticationService } from "./authentication.service";
import { Subscribe } from "../models/requests/datasubscription/subscribe";
import { SessionService } from "./session.service";
import { Unsubscribe } from "../models/requests/datasubscription/unsubscribe";
export class DataStreamService {
socket;
constructor(socket) {
this.socket = socket;
}
subscribe(streams, action) {
let authToken = AuthenticationService.getAuthToken();
let sessionId = SessionService.getSessionId();
let subRequest = new Subscribe(authToken, sessionId, streams);
this.socket.send(JSON.stringify(subRequest));
this.socket.onmessage = (message) => {
try {
let data = JSON.parse(message.data);
console.debug("SubRequest response:", data);
action(data);
}
catch (error) {
console.error(error);
}
};
}
unsubscribe(streams, action) {
let authToken = AuthenticationService.getAuthToken();
let sessionId = SessionService.getSessionId();
let unsubRequest = new Unsubscribe(authToken, sessionId, streams);
this.socket.send(JSON.stringify(unsubRequest));
this.socket.onmessage = (message) => {
try {
let data = JSON.parse(message.data);
console.debug("UnsubRequest response:", data);
action(data);
}
catch (error) {
console.error(error);
}
};
}
}