Как предоставить каждому пользователю веб-приложения уникальный сеанс, чтобы запросы не мешали нескольким пользователям одновременно? - PullRequest
0 голосов
/ 06 мая 2020

Я пытался запрограммировать простое веб-приложение, используя C бэкэнд для Ti c -Ta c -Toe, используя Node. Он работает, но работает только тогда, когда по ссылке находится один пользователь. Если пользователей больше, чем один, запросы веб-сайта от всех пользователей кажутся конфликтными, и игра разваливается. Мне было интересно, как я могу разделить запросы на стороне сервера и клиента. Я пытался разветвлять весь процесс узла каждый раз, когда запрашивается веб-сайт, я также пытался использовать случайные конечные точки для каждого пользователя, чтобы у каждого пользователя была уникальная конечная точка для запросов, необходимых для игры. Я также попытался дать каждому пользователю уникальный идентификатор сеанса, но я не уверен, что это обязательно сработало. Вот код моего приложения. js файл, который запускает сервер:

    const ffi = require('ffi-napi');
    const express   = require("express");
    const app       = express();
    const path      = require("path");
    let sharedLib = ffi.Library('./gameProgram', {
     'getTheMove': ['string', ['int']],
      'resetGame': ['int', ['int']]
   });

   app.get('/',function(req,res){
      res.sendFile(path.join(__dirname+'/public/index.html'));

   });
   app.get('/reroute.js',function(req,res){
      res.sendFile(path.join(__dirname+'/public/reroute.js'));
   });

   app.get('/style.css',function(req,res){
      res.sendFile(path.join(__dirname+'/public/style.css'));
   });


   app.get('/game' ,function(req,res) {
      res.sendFile(path.join(__dirname+'/public/game.html'));
   });


   app.get('/index.js',function(req,res){
      res.sendFile(path.join(__dirname+'/public/index.js'));
   });


   app.get('/userMove', function(req, res) {
      let themove = sharedLib.getTheMove(req.query.move);

      res.send({
        computerMove: themove
      })
   });

  app.get("/reset", function(req, res) {
     let didItWork = sharedLib.resetGame(1);

     res.send({
        resetIt: didItWork
     })
  });
  app.use(express.static('public'));

  app.listen(process.env.PORT || 3000);

Подводя итог, я просто хочу иметь возможность запускать это приложение, чтобы несколько пользователей могли использовать его в в то же время, и чтобы у каждого пользователя был «уникальный» сеанс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...