This repository has been archived on 2026-05-01. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
chatless/backend/service-message/server.js
2021-05-28 08:03:55 +02:00

81 lines
No EOL
2.1 KiB
JavaScript

const express = require('express');
const http = require('http');
const { Server } = require("socket.io");
const cors = require ('cors');
const cookieParser = require('cookie-parser');
const auth = require ('./auth');
const bodyParser = require ('body-parser');
const {sendError, sendMessage} = require ('./message');
const messages = require('./mongodb-message');
const app = express();
const server = http.createServer(app);
const io = new Server(server);
const port = process.env.PORT || 3000;
app.use(bodyParser.json());
app.use(cors({origin: 'http://127.0.0.1:4200', credentials: true}));
app.use(cookieParser());
app.get('/', (req, res) => {
const session = auth.getSession(req);
const getUsername = auth.getUsername(session);
if (getUsername === -1) {
//sendError(res, 'not authenticated');
}
//auth.setSessionCookie(req, res, session);
res.sendFile(__dirname + '/index.html');
});
io.on('connection',socket => {
let users = {}
socket.on('user', (userData) => {
console.log(`${getUsername} joined the chat.`);
users[socket.id] = getUsername;
messages.find({},(err, res) => {
if(err) throw err;
if(res.length > 0){
const savedChat = res;
socket.emit('general',savedChat);
}
});
});
socket.on('general',function(data){
socket.broadcast.emit('general',data);
const username = data.username;
const date = Date.now();
const channel = 'general';
const message = data.message;
messages.insertMany([{
username: username,
date: date,
channel: channel,
message: message
}
]).then(function(){
console.log(data, "inserted");
}).catch(function(error){
console.log("error",error);
});
});
socket.on('typing',(user)=>{
socket.broadcast.emit('notifyTyping',user)
})
socket.on("disconnect", function() {
console.log(`${socket.id} left the chat.`);
});
});
server.listen(port, () => {
console.log('listening on *:3000');
});