const { // server sendable, client receivable TOPIC_UPDATED, TOPIC_DELETED, SYNAPSE_UPDATED, SYNAPSE_DELETED, MAP_UPDATED, JUNTO_UPDATED, // server receivable, client sendable JOIN_CALL, LEAVE_CALL, JOIN_MAP, LEAVE_MAP, UPDATE_TOPIC, DELETE_TOPIC, UPDATE_SYNAPSE, DELETE_SYNAPSE, UPDATE_MAP } = require('../frontend/src/Metamaps/Realtime/events') module.exports = function(io, store) { store.subscribe(() => { console.log(store.getState()) io.sockets.emit(JUNTO_UPDATED, store.getState()) }) io.on('connection', function(socket) { io.sockets.emit(JUNTO_UPDATED, store.getState()) socket.on(JOIN_MAP, data => store.dispatch({ type: JOIN_MAP, payload: data })) socket.on(LEAVE_MAP, () => store.dispatch({ type: LEAVE_MAP, payload: socket })) socket.on(JOIN_CALL, data => store.dispatch({ type: JOIN_CALL, payload: data })) socket.on(LEAVE_CALL, () => store.dispatch({ type: LEAVE_CALL, payload: socket })) socket.on('disconnect', () => store.dispatch({ type: 'DISCONNECT', payload: socket })) socket.on(UPDATE_TOPIC, function(data) { socket.broadcast.emit(TOPIC_UPDATED, data) }) socket.on(DELETE_TOPIC, function(data) { socket.broadcast.emit(TOPIC_DELETED, data) }) socket.on(UPDATE_SYNAPSE, function(data) { socket.broadcast.emit(SYNAPSE_UPDATED, data) }) socket.on(DELETE_SYNAPSE, function(data) { socket.broadcast.emit(SYNAPSE_DELETED, data) }) socket.on(UPDATE_MAP, function(data) { socket.broadcast.emit(MAP_UPDATED, data) }) }) }