From 78f2e85fdf50d324e8a66c7c5b5449ecc6f3b70c Mon Sep 17 00:00:00 2001 From: Onja Date: Wed, 11 Oct 2023 00:06:06 +0300 Subject: [PATCH] Add "configureSocket" function to create a WebSocket connection and handle connection and disconnection events --- bin/www | 2 ++ src/services/io.js | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/services/io.js diff --git a/bin/www b/bin/www index 152316b..835f1b4 100644 --- a/bin/www +++ b/bin/www @@ -7,6 +7,7 @@ var app = require('../src/app'); var debug = require('debug')('bodacc:server'); var http = require('http'); +const configureSocket = require('../src/services/io'); /** * Get port from environment and store in Express. @@ -20,6 +21,7 @@ app.set('port', port); */ var server = http.createServer(app); +const io = configureSocket(server); /** * Listen on provided port, on all network interfaces. diff --git a/src/services/io.js b/src/services/io.js new file mode 100644 index 0000000..40a83f3 --- /dev/null +++ b/src/services/io.js @@ -0,0 +1,27 @@ +const socketIo = require('socket.io'); +const emitter = require('../services/eventEmitter'); +const e = require('express'); +const configure = require('../subscribers/ioSubscriber'); + +function configureSocket(server) { + const io = socketIo(server); + + io.on('connection', (socket) => { + console.log('Nouvelle connexion WebSocket établie'); + emitter.emit('io.connection', { socket }); + + // Ici, vous pouvez mettre tout le code de gestion des connexions WebSocket, y compris les émissions et les écoutes de messages. + + configure(socket); + + // Gérez la déconnexion + socket.on('disconnect', () => { + console.log('Connexion WebSocket fermée'); + emitter.emit('io.disconnect', { socket }); + }); + }); + + return io; +} + +module.exports = configureSocket; \ No newline at end of file