forked from Transport-Protocol/MBC-Trump
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmessageHandler.ts
38 lines (34 loc) · 1.26 KB
/
messageHandler.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { WSocketServer } from './wSocketServer';
import { MessageFactory } from './messageFactory';
import { Server } from './server';
export class MessageHandler{
private handler : {[key : string] : Function[]} = {};
private messageFactory : MessageFactory;
constructor(socket : WSocketServer, messageFactory : MessageFactory){
this.messageFactory = messageFactory;
socket.addTextMessageHandler(this.handleMessages);
}
handleMessages = (message, connection) => {
if (message.utf8Data) {
Server.log("Client Got message " + message.utf8Data);
try {
var messageObj = this.messageFactory.getMessage(message.utf8Data);
for(let handler of this.handler[messageObj.type]){
handler(messageObj, connection);
}
} catch (err) {
Server.log( "ERROR: " + err);
}
} else {
Server.log("Client No data in this message available");
Server.log(message);
}
}
addHandler(messageType : string, handler : Function){
if(this.handler[messageType] === undefined)
{
this.handler[messageType] = [];
}
this.handler[messageType].push(handler);
}
}