Skip to content

Instantly share code, notes, and snippets.

@slavic18
Last active October 16, 2017 13:47
Show Gist options
  • Save slavic18/4ee1c8620e9aada432e513db4e1b70be to your computer and use it in GitHub Desktop.
Save slavic18/4ee1c8620e9aada432e513db4e1b70be to your computer and use it in GitHub Desktop.
Example of node socket controller.
const EventsController = require('./events');
const UsersController = require('./users');
const socketsController = function (io) {
io.sockets.on('connection', function (socket) {
// login socket
if (!socket.decoded_token) {
console.log("Disconnecting unauthorized socket ", socket.id);
socket.disconnect('unauthorized');
} else {
UsersController.initSocket(socket);
}
socket.on('getCurrentState', function (data) {
if (data.state) {
socket.currentState = {
type: data.state
};
if (data.stateFrom) {
socket.currentState.from = new Date(data.stateFrom);
}
if (data.stateTo) {
socket.currentState.to = new Date(data.stateTo);
}
}
EventsController.getSocket(socket);
});
socket.on('entryEvent', function (data) {
socket.join(data.eventId);
});
socket.on('createNewEvent', function (data) {
EventsController.postSocket(data, socket, io);
});
socket.on('disconnect', function () {
console.log('disconnect user');
if (typeof socket.authUser !== 'undefined') {
socket.emit('reconnect');
}
});
});
};
module.exports = socketsController;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment