-
Notifications
You must be signed in to change notification settings - Fork 1
Events
OlivierArgentieri edited this page Sep 24, 2021
·
1 revision
Event are not a socket.io object, it's just custom object to structure this app. An event contains the "real" code executed, is the main core of each behaviour.
📦events
┣ 📂dcc
┃ ┣ 📂actions
┃ ┃ ┣ 📜query.js
┃ ┃ ┣ 📜request.js
┃ ┃ ┗ 📜update.js
┃ ┣ 📜disconnect.js
┃ ┗ 📜initialization.js
┗ 📂ui
┃ ┣ 📜disconnect.js
┃ ┣ 📜getclients.js
┃ ┗ 📜initialization.js
To add new event you just have to create your event.js below /events.
// events/dcc/disconnect/js
const store = require("../../store") // <== main storage of app
const { uiRoomTo } = require("../../rooms/ui") // <== require/import here
const disconnect = (socket, io) => { // <== Body of your event
socket.on("disconnect", (data) => {
// get uuid from data
const uuid = data.uuid
if (uuid && store.dccs[uuid]) {
delete store.dccs[uuid]
}
uiRoomTo(io).emit("dccDisconnect", { uuid: socket.data.uuid })
})
}
module.exports = disconnect
// listeners/dcc.js
...
/** EVENTS */
const initializationEvent = require("../events/dcc/initialization") // <== import your event
const queryEvent = require("../events/dcc/actions/query")
const requestEvent = require("../events/dcc/actions/request")
const updateEvent = require("../events/dcc/actions/update")
const diconnectEvent = require("../events/dcc/disconnect")
...
module.exports = function (io) {
dccNamespace(io).on("connection", function (socket) {
dccRoomJoin(socket) // <== events arehere
initializationEvent(socket, io)
diconnectEvent(socket, io)
})
dccActionNamespace(io).on("connection", function (socket) {
queryEvent(socket, io) // <== events are here
requestEvent(socket, io)
updateEvent(socket, io)
})
}
📚 Doc
🔧 Introduction:
🚀 Development: