// konfiguracja aplikacji – dostęp przez zmienne środowiskowe
require("dotenv").config();
// jako „bazy” używamy Express.js
const express = require("express");
var socket = require('socket.io');
const app = express();
app.set("view engine", "ejs");
// wszelkie dane przesyłamy w formacie JSON
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
// machnaizm sesji – z wykorzystaniem ciasteczek
const cookieParser = require("cookie-parser");
app.use(cookieParser());
const expressSession = require("express-session");
app.use(expressSession({
secret: process.env.APP_SECRET,
resave: false,
saveUninitialized: false
}));
// do obsługi autoryzacji używamy Passport.js
const passport = require("./passport");
app.use(passport.initialize());
app.use(passport.session());
// routing aplikacji
const routes = require("./routes");
app.use(routes);
// wyłapujemy odwołania do nieobsługiwanych adresów
app.use((_, res) => {
// Not Found
res.sendStatus(404);
});
// Serwer HTTPS
// openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out my.crt -keyout my.key
const server = require("./https")(app);
const port = process.env.port;
server.listen(port, () => {
console.log(`Serwer działa pod adresem: https://localhost:${port}`);
});
app.use(express.static('public'));
// Socket setup & pass server
var io = socket(server);
io.of("/222").on('connection', (socket) => {
console.log('polaczono', socket.id);
// Handle chat event
socket.on('chat', function(data){
socket.broadcast.emit('chat', data);
socket.emit('chat', data);
});
// Handle typing event
socket.on('typing', function(data){
socket.broadcast.emit('typing', data);
});
});
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}