diff --git a/back/src/Controller/IoSocketController.ts b/back/src/Controller/IoSocketController.ts
index 707df4a6..75ee3064 100644
--- a/back/src/Controller/IoSocketController.ts
+++ b/back/src/Controller/IoSocketController.ts
@@ -12,8 +12,7 @@ import {
WebRtcSignalToServerMessage,
PlayGlobalMessage,
ReportPlayerMessage,
- QueryJitsiJwtMessage,
- SendJitsiJwtMessage,
+ QueryJitsiJwtMessage
} from "../Messages/generated/messages_pb";
import {UserMovesMessage} from "../Messages/generated/messages_pb";
import {TemplatedApp} from "uWebSockets.js"
@@ -72,7 +71,20 @@ export class IoSocketController {
clientEventsEmitter.registerToClientLeave(ws.clientLeaveCallback);
},
message: (ws, arrayBuffer, isBinary): void => {
- console.log('m', ws); //todo: add admin actions such as ban here
+ try {
+ //TODO refactor message type and data
+ let message: {event: string, message: {type: string, message: unknown, userUuid: string}} =
+ JSON.parse(new TextDecoder("utf-8").decode(new Uint8Array(arrayBuffer)));
+
+ if(message.event === 'user-message') {
+ if (message.message.type === 'ban') {
+ let messageToEmit = (message.message as {message: string, type: string, userUuid: string});
+ socketManager.emitSendUserMessage(messageToEmit);
+ }
+ }
+ }catch (err) {
+ console.error(err);
+ }
},
close: (ws, code, message) => {
//todo make sure this code unregister the right listeners
diff --git a/back/src/Services/SocketManager.ts b/back/src/Services/SocketManager.ts
index 44579123..a6204941 100644
--- a/back/src/Services/SocketManager.ts
+++ b/back/src/Services/SocketManager.ts
@@ -19,7 +19,11 @@ import {
UserMovesMessage,
ViewportMessage, WebRtcDisconnectMessage,
WebRtcSignalToClientMessage,
- WebRtcSignalToServerMessage, WebRtcStartMessage, QueryJitsiJwtMessage, SendJitsiJwtMessage
+ WebRtcSignalToServerMessage,
+ WebRtcStartMessage,
+ QueryJitsiJwtMessage,
+ SendJitsiJwtMessage,
+ SendUserMessage
} from "../Messages/generated/messages_pb";
import {PointInterface} from "../Model/Websocket/PointInterface";
import {User} from "../Model/User";
@@ -668,6 +672,24 @@ class SocketManager {
client.send(serverToClientMessage.serializeBinary().buffer, true);
}
+
+ public emitSendUserMessage(messageToSend: {userUuid: string, message: string, type: string}): void {
+ let socket = this.searchClientByUuid(messageToSend.userUuid);
+ if(!socket){
+ throw 'socket was not found';
+ }
+
+ const sendUserMessage = new SendUserMessage();
+ sendUserMessage.setMessage(messageToSend.message);
+ sendUserMessage.setType(messageToSend.type);
+
+ const serverToClientMessage = new ServerToClientMessage();
+ serverToClientMessage.setSendusermessage(sendUserMessage);
+
+ if (!socket.disconnecting) {
+ socket.send(serverToClientMessage.serializeBinary().buffer, true);
+ }
+ }
}
export const socketManager = new SocketManager();
diff --git a/front/dist/index.html b/front/dist/index.html
index 5984af7b..8e957965 100644
--- a/front/dist/index.html
+++ b/front/dist/index.html
@@ -125,6 +125,9 @@
+