repositories
/
e-mobility-charging-stations-simulator.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: cleanup default params in error handlers
[e-mobility-charging-stations-simulator.git]
/
src
/
charging-station
/
ui-server
/
UIWebSocketServer.ts
diff --git
a/src/charging-station/ui-server/UIWebSocketServer.ts
b/src/charging-station/ui-server/UIWebSocketServer.ts
index 16477146f0c638fbd1776213df0d336e3fa9f62d..bf0a6c444749201fe06d2cdcc6f24b10fa09582a 100644
(file)
--- a/
src/charging-station/ui-server/UIWebSocketServer.ts
+++ b/
src/charging-station/ui-server/UIWebSocketServer.ts
@@
-4,9
+4,8
@@
import type { Duplex } from 'node:stream'
import { StatusCodes } from 'http-status-codes'
import { type RawData, WebSocket, WebSocketServer } from 'ws'
import { StatusCodes } from 'http-status-codes'
import { type RawData, WebSocket, WebSocketServer } from 'ws'
-import { AbstractUIServer } from './AbstractUIServer.js'
-import { UIServerUtils } from './UIServerUtils.js'
import {
import {
+ MapStringifyFormat,
type ProtocolRequest,
type ProtocolResponse,
type UIServerConfiguration,
type ProtocolRequest,
type ProtocolResponse,
type UIServerConfiguration,
@@
-14,13
+13,19
@@
import {
} from '../../types/index.js'
import {
Constants,
} from '../../types/index.js'
import {
Constants,
- JSONStringifyWithMapSupport,
getWebSocketCloseEventStatusString,
isNotEmptyString,
getWebSocketCloseEventStatusString,
isNotEmptyString,
-
logPrefix
,
+
JSONStringify
,
logger,
logger,
+ logPrefix,
validateUUID
} from '../../utils/index.js'
validateUUID
} from '../../utils/index.js'
+import { AbstractUIServer } from './AbstractUIServer.js'
+import {
+ getProtocolAndVersion,
+ handleProtocols,
+ isProtocolAndVersionSupported
+} from './UIServerUtils.js'
const moduleName = 'UIWebSocketServer'
const moduleName = 'UIWebSocketServer'
@@
-30,14
+35,14
@@
export class UIWebSocketServer extends AbstractUIServer {
public constructor (protected readonly uiServerConfiguration: UIServerConfiguration) {
super(uiServerConfiguration)
this.webSocketServer = new WebSocketServer({
public constructor (protected readonly uiServerConfiguration: UIServerConfiguration) {
super(uiServerConfiguration)
this.webSocketServer = new WebSocketServer({
- handleProtocols
: UIServerUtils.handleProtocols
,
+ handleProtocols,
noServer: true
})
}
public start (): void {
this.webSocketServer.on('connection', (ws: WebSocket, _req: IncomingMessage): void => {
noServer: true
})
}
public start (): void {
this.webSocketServer.on('connection', (ws: WebSocket, _req: IncomingMessage): void => {
- if (!
UIServerUtils.
isProtocolAndVersionSupported(ws.protocol)) {
+ if (!isProtocolAndVersionSupported(ws.protocol)) {
logger.error(
`${this.logPrefix(
moduleName,
logger.error(
`${this.logPrefix(
moduleName,
@@
-46,7
+51,7
@@
export class UIWebSocketServer extends AbstractUIServer {
)
ws.close(WebSocketCloseEventStatusCode.CLOSE_PROTOCOL_ERROR)
}
)
ws.close(WebSocketCloseEventStatusCode.CLOSE_PROTOCOL_ERROR)
}
- const [, version] =
UIServerUtils.
getProtocolAndVersion(ws.protocol)
+ const [, version] = getProtocolAndVersion(ws.protocol)
this.registerProtocolVersionUIService(version)
ws.on('message', rawData => {
const request = this.validateRawDataRequest(rawData)
this.registerProtocolVersionUIService(version)
ws.on('message', rawData => {
const request = this.validateRawDataRequest(rawData)
@@
-87,6
+92,16
@@
export class UIWebSocketServer extends AbstractUIServer {
}
})
this.httpServer.on('upgrade', (req: IncomingMessage, socket: Duplex, head: Buffer): void => {
}
})
this.httpServer.on('upgrade', (req: IncomingMessage, socket: Duplex, head: Buffer): void => {
+ const onSocketError = (error: Error): void => {
+ logger.error(
+ `${this.logPrefix(
+ moduleName,
+ 'start.httpServer.on.upgrade'
+ )} Socket error at connection upgrade event handling:`,
+ error
+ )
+ }
+ socket.on('error', onSocketError)
this.authenticate(req, err => {
if (err != null) {
socket.write(`HTTP/1.1 ${StatusCodes.UNAUTHORIZED} Unauthorized\r\n\r\n`)
this.authenticate(req, err => {
if (err != null) {
socket.write(`HTTP/1.1 ${StatusCodes.UNAUTHORIZED} Unauthorized\r\n\r\n`)
@@
-102,11
+117,12
@@
export class UIWebSocketServer extends AbstractUIServer {
`${this.logPrefix(
moduleName,
'start.httpServer.on.upgrade'
`${this.logPrefix(
moduleName,
'start.httpServer.on.upgrade'
- )} Error at
handling connection upgrade
:`,
+ )} Error at
connection upgrade event handling
:`,
error
)
}
})
error
)
}
})
+ socket.removeListener('error', onSocketError)
})
this.startHttpServer()
}
})
this.startHttpServer()
}
@@
-121,7
+137,7
@@
export class UIWebSocketServer extends AbstractUIServer {
if (this.hasResponseHandler(responseId)) {
const ws = this.responseHandlers.get(responseId) as WebSocket
if (ws.readyState === WebSocket.OPEN) {
if (this.hasResponseHandler(responseId)) {
const ws = this.responseHandlers.get(responseId) as WebSocket
if (ws.readyState === WebSocket.OPEN) {
- ws.send(JSONStringify
WithMapSupport(response
))
+ ws.send(JSONStringify
(response, undefined, MapStringifyFormat.object
))
} else {
logger.error(
`${this.logPrefix(
} else {
logger.error(
`${this.logPrefix(