Skip to content

Instantly share code, notes, and snippets.

@kavinduchamiran
Last active September 12, 2019 14:14
Show Gist options
  • Save kavinduchamiran/31d6fcc0a330d4ad6da6fe6adcd15075 to your computer and use it in GitHub Desktop.
Save kavinduchamiran/31d6fcc0a330d4ad6da6fe6adcd15075 to your computer and use it in GitHub Desktop.
// importing dependencies
const express = require('express');
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const cors = require('cors');
const socketIO = require('socket.io');
// expressjs
const app = express();
app.use(
bodyParser.urlencoded({
extended: false
})
);
app.use(bodyParser.json());
app.use(cors());
const users = require('./routes/api/users');
app.use("/api/users", users);
app.get('/', (req, res) => {
res.send('ClouDL server up and running.');
});
// mongodb
mongoose
.connect(
`mongodb://mongodb-service/cloudl`, {
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(() => console.log("MongoDB successfully connected"))
.catch(err => console.log(err));
// fireup the server
const port = process.env.PORT || 5000;
server = app.listen(port, () => console.log(`Server up and running on port ${port} !`));
// socketio
const io = socketIO(server, {
path: '/socket/'
});
let sockets = [];
let python_socket;
io.on('connection', socket => {
console.log('New client connected!');
if(socket.handshake.headers.name === 'python'){
python_socket = socket;
}
socket.on('userId', user => {
sockets[user.userId] = socket;
})
if (python_socket) {
socket.on('newJob', job => {
let {id, link} = job;
python_socket.emit('new_job', {id, link})
});
python_socket.on('job_add_success', {userId} => {
let userSocket = sockets[userId];
userSocket.emit('job_add_success');
});
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment