import { StatusCodes } from 'http-status-codes';
import WebSocket, { type RawData, WebSocketServer } from 'ws';
+import { AbstractUIServer } from './AbstractUIServer';
+import { UIServerUtils } from './UIServerUtils';
import {
type ProtocolRequest,
type ProtocolResponse,
type UIServerConfiguration,
WebSocketCloseEventStatusCode,
} from '../../types';
-import { Utils, logger } from '../../utils';
-import { AbstractUIServer, UIServerUtils } from '../internal';
+import { Constants, Utils, logger } from '../../utils';
const moduleName = 'UIWebSocketServer';
this.uiServices
.get(version)
?.requestHandler(request)
- .catch(() => {
- /* Error caught by AbstractUIService */
- });
+ .then((protocolResponse: ProtocolResponse) => {
+ if (!Utils.isNullOrUndefined(protocolResponse)) {
+ this.sendResponse(protocolResponse);
+ }
+ })
+ .catch(Constants.EMPTY_FUNCTION);
});
ws.on('error', (error) => {
logger.error(`${this.logPrefix(moduleName, 'start.ws.onerror')} WebSocket error:`, error);
public sendResponse(response: ProtocolResponse): void {
const responseId = response[0];
try {
- if (this.responseHandlers.has(responseId)) {
+ if (this.hasResponseHandler(responseId)) {
const ws = this.responseHandlers.get(responseId) as WebSocket;
if (ws?.readyState === WebSocket.OPEN) {
ws.send(JSON.stringify(response));