+ public stop(): void {
+ this.chargingStations.clear();
+ }
+
+ public async sendRequestOnBroadcastChannel(request: ProtocolRequest): Promise<ProtocolResponse> {
+ const protocolVersion = ProtocolVersion['0.0.1'];
+ this.registerProtocolVersionUIService(protocolVersion);
+ return this.uiServices.get(protocolVersion)?.requestHandler(request);
+ }
+
+ protected startHttpServer(): void {
+ if (this.httpServer.listening === false) {
+ this.httpServer.listen(this.uiServerConfiguration.options);
+ }
+ }
+
+ protected registerProtocolVersionUIService(version: ProtocolVersion): void {
+ if (this.uiServices.has(version) === false) {
+ this.uiServices.set(version, UIServiceFactory.getUIServiceImplementation(version, this));
+ }
+ }
+
+ protected authenticate(req: IncomingMessage, next: (err?: Error) => void): void {
+ if (this.isBasicAuthEnabled() === true) {
+ if (this.isValidBasicAuth(req) === false) {
+ next(new BaseError('Unauthorized'));
+ }
+ next();
+ }
+ next();
+ }
+
+ private isBasicAuthEnabled(): boolean {