Facebook
From Torrid Crocodile, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 141
  1. // konfiguracja aplikacji – dostęp przez zmienne środowiskowe
  2. require("dotenv").config();
  3.  
  4.  
  5. // jako „bazy” używamy Express.js
  6. const express = require("express");
  7. var socket = require('socket.io');
  8. const app = express();
  9. app.set("view engine", "ejs");
  10.  
  11. // wszelkie dane przesyłamy w formacie JSON
  12. app.use(express.urlencoded({ extended: false }));
  13. app.use(express.json());
  14.  
  15. // machnaizm sesji – z wykorzystaniem ciasteczek
  16. const cookieParser = require("cookie-parser");
  17. app.use(cookieParser());
  18. const expressSession = require("express-session");
  19. app.use(expressSession({
  20.     secret: process.env.APP_SECRET,
  21.     resave: false,
  22.     saveUninitialized: false
  23. }));
  24.  
  25. // do obsługi autoryzacji używamy Passport.js
  26. const passport = require("./passport");
  27. app.use(passport.initialize());
  28. app.use(passport.session());
  29.  
  30. // routing aplikacji
  31. const routes = require("./routes");
  32. app.use(routes);
  33. // wyłapujemy odwołania do nieobsługiwanych adresów
  34. app.use((_, res) => {
  35.     // Not Found
  36.     res.sendStatus(404);
  37. });
  38.  
  39. // Serwer HTTPS
  40. // openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out my.crt -keyout my.key
  41. const server = require("./https")(app);
  42. const port = process.env.port;
  43.  
  44. server.listen(port, () => {
  45.     console.log(`Serwer działa pod adresem: https://localhost:${port}`);
  46. });
  47.  
  48. app.use(express.static('public'));
  49.  
  50. // Socket setup & pass server
  51. var io = socket(server);
  52. io.of("/222").on('connection', (socket) => {
  53.  
  54.     console.log('polaczono', socket.id);
  55.  
  56.     // Handle chat event
  57.     socket.on('chat', function(data){
  58.         socket.broadcast.emit('chat', data);
  59.         socket.emit('chat', data);
  60.     });
  61.  
  62.     // Handle typing event
  63.     socket.on('typing', function(data){
  64.         socket.broadcast.emit('typing', data);
  65.     });
  66.  
  67. });
  68.