Commit ef4a6047 authored by Dennis Willers's avatar Dennis Willers
Browse files

Add Socket. Synchronität ist immernoch komisch

parent 3d375012
Loading
Loading
Loading
Loading
+2 −5
Original line number Original line Diff line number Diff line
@@ -15,7 +15,6 @@ import {environment} from '../../environments/environment';
export class GameComponent implements OnInit {
export class GameComponent implements OnInit {


  socket: any;
  socket: any;
  init = true;
  sessionName = '';
  sessionName = '';
  isWatchdog = false;
  isWatchdog = false;
  isExplainer = false;
  isExplainer = false;
@@ -65,7 +64,7 @@ export class GameComponent implements OnInit {
      this.fillGamestatus();
      this.fillGamestatus();
      this.team = String(params.get('team'));
      this.team = String(params.get('team'));
      this.socket = io(environment.tabuServerURL);
      this.socket = io(environment.tabuServerURL);
      this.listen()
      this.listen();
    });
    });
    this.startTimer();
    this.startTimer();
  }
  }
@@ -80,9 +79,6 @@ export class GameComponent implements OnInit {
    this.socket.on(this.sessionName + ':endRound', (data: any) => {
    this.socket.on(this.sessionName + ':endRound', (data: any) => {
      console.log('GAME: ', data);
      console.log('GAME: ', data);
      if (JSON.parse(data)) {
      if (JSON.parse(data)) {
        if (this.init) {
          this.init = false;
        }
        console.log('GAME END: ', data);
        console.log('GAME END: ', data);
        this.socket.disconnect();
        this.socket.disconnect();
        this.router.navigate([this.sessionName + '/' + this.team]);
        this.router.navigate([this.sessionName + '/' + this.team]);
@@ -91,6 +87,7 @@ export class GameComponent implements OnInit {
  }
  }


  onTimesUp(): void{
  onTimesUp(): void{
    this.socket.disconnect()
    this.router.navigate([this.sessionName + '/' + this.team]);
    this.router.navigate([this.sessionName + '/' + this.team]);
  }
  }


+36 −11
Original line number Original line Diff line number Diff line
@@ -2,12 +2,15 @@ import { Component, OnInit } from '@angular/core';
import {TabuMiddlewareService} from '../dao/TabuMiddlewareService';
import {TabuMiddlewareService} from '../dao/TabuMiddlewareService';
import {GameStatus} from '../interface/gameStatus';
import {GameStatus} from '../interface/gameStatus';
import {ActivatedRoute, Router} from '@angular/router';
import {ActivatedRoute, Router} from '@angular/router';
import {io} from 'socket.io-client';
import {environment} from '../../environments/environment';
@Component({
@Component({
  selector: 'app-guesser',
  selector: 'app-guesser',
  templateUrl: './guesser.component.html',
  templateUrl: './guesser.component.html',
  styleUrls: ['./guesser.component.scss']
  styleUrls: ['./guesser.component.scss']
})
})
export class GuesserComponent implements OnInit {
export class GuesserComponent implements OnInit {
  socket: any;
  sessionName = '';
  sessionName = '';
  TIME_LIMIT = 100;
  TIME_LIMIT = 100;
  timePassed = 0;
  timePassed = 0;
@@ -30,23 +33,31 @@ export class GuesserComponent implements OnInit {
    this.activatedRoute.paramMap.subscribe(params => {
    this.activatedRoute.paramMap.subscribe(params => {
      this.sessionName = String(params.get('sessionName'));
      this.sessionName = String(params.get('sessionName'));
      this.team = String(params.get('team'));
      this.team = String(params.get('team'));
      this.service.getGamestatus({spielname: this.sessionName}).then(value => {
      this.fillGamestatus();
        const status = JSON.parse(value.status);
      this.socket = io(environment.tabuServerURL);
        if (status) {
      this.listen();
          this.gameStatus.sessionID = JSON.parse(value.sessionID);
    });
          this.gameStatus.red = JSON.parse(value.red);
    this.startTimer();
          this.gameStatus.blue = JSON.parse(value.blue);
          this.gameStatus.redTurn = JSON.parse(value.redTurn);
          this.gameStatus.activeExplainer = JSON.parse(value.activeExplainer);
          this.gameStatus.activeWatchdog = JSON.parse(value.activeWatchdog);
  }
  }
        console.log(this.gameStatus);

  listen(): any {
    this.socket.on(this.sessionName + ':newCard', (data: any) => {
      this.service.getCard({cardID: data}).then(value => {
        this.fillGamestatus();
      });
      });
    });
    });
    this.startTimer();
    this.socket.on(this.sessionName + ':endRound', (data: any) => {
      console.log('GAME: ', data);
      if (JSON.parse(data)) {
        console.log('GAME END: ', data);
        this.socket.disconnect();
        this.router.navigate([this.sessionName + '/' + this.team]);
      }
    });
  }
  }


  onTimesUp(): void{
  onTimesUp(): void{
    this.socket.disconnect();
    this.router.navigate([this.sessionName + '/' + this.team]);
    this.router.navigate([this.sessionName + '/' + this.team]);
  }
  }


@@ -65,4 +76,18 @@ export class GuesserComponent implements OnInit {
      this.timeRemaining = this.timeRemaining -= 1;
      this.timeRemaining = this.timeRemaining -= 1;
    }, 1000);
    }, 1000);
  }
  }

  fillGamestatus(): void {
    this.service.getGamestatus({spielname: this.sessionName}).then(value => {
      const status = JSON.parse(value.status);
      if (status) {
        this.gameStatus.sessionID = JSON.parse(value.sessionID);
        this.gameStatus.red = JSON.parse(value.red);
        this.gameStatus.blue = JSON.parse(value.blue);
        this.gameStatus.redTurn = JSON.parse(value.redTurn);
        this.gameStatus.activeExplainer = JSON.parse(value.activeExplainer);
        this.gameStatus.activeWatchdog = JSON.parse(value.activeWatchdog);
      }
    });
  }
}
}
+5 −2
Original line number Original line Diff line number Diff line
@@ -56,6 +56,7 @@ export class OverviewComponent implements OnInit {
        this.membership = 'Wähle dein Team';
        this.membership = 'Wähle dein Team';
      }
      }
      else {
      else {
        this.socket.disconnect();
        this.router.navigate(['error']);
        this.router.navigate(['error']);
        return;
        return;
      }
      }
@@ -71,12 +72,12 @@ export class OverviewComponent implements OnInit {
        console.log('OVERVIEW: ', data);
        console.log('OVERVIEW: ', data);
        if (((this.team === 'red' && this.nextTeam === 'Rot') || (this.team === 'blue' && this.nextTeam === 'Blau'))
        if (((this.team === 'red' && this.nextTeam === 'Rot') || (this.team === 'blue' && this.nextTeam === 'Blau'))
          && !this.wantToBeExplainer) {
          && !this.wantToBeExplainer) {
          this.socket.disconnect();
          console.log('OVERVIEW GO GUESSER: ', data);
          console.log('OVERVIEW GO GUESSER: ', data);
          this.socket.disconnect();
          this.router.navigate([this.sessionName + '/' + this.team + '/guesser']);
          this.router.navigate([this.sessionName + '/' + this.team + '/guesser']);
        } else if ((this.team === 'red' || this.team === 'blue') && !this.wantToBeExplainer) {
        } else if ((this.team === 'red' || this.team === 'blue') && !this.wantToBeExplainer) {
          this.socket.disconnect();
          console.log('OVERVIEW GO WATCHDOG: ', data);
          console.log('OVERVIEW GO WATCHDOG: ', data);
          this.socket.disconnect();
          this.router.navigate([this.sessionName + '/' + this.team + '/watchdog']);
          this.router.navigate([this.sessionName + '/' + this.team + '/watchdog']);
        }
        }
      }
      }
@@ -97,11 +98,13 @@ export class OverviewComponent implements OnInit {
  nextRound(): void {
  nextRound(): void {
    this.wantToBeExplainer = true;
    this.wantToBeExplainer = true;
    this.service.newRound({spielname: this.sessionName});
    this.service.newRound({spielname: this.sessionName});
    this.socket.disconnect()
    this.router.navigate([this.router.url + '/explainer']);
    this.router.navigate([this.router.url + '/explainer']);
  }
  }


  joinTeam(team: string): void {
  joinTeam(team: string): void {
    this.team = team;
    this.team = team;
    this.socket.disconnect()
    this.router.navigate([this.sessionName + '/' + team]);
    this.router.navigate([this.sessionName + '/' + team]);
  }
  }


+2 −2
Original line number Original line Diff line number Diff line
@@ -4,8 +4,8 @@


export const environment = {
export const environment = {
  production: false,
  production: false,
  //tabuMiddlewareURL: 'http://localhost:8080/',
  tabuMiddlewareURL: 'http://localhost:8080/',
  tabuMiddlewareURL: 'http://tabu-middleware.willers.digital/',
  //tabuMiddlewareURL: 'http://tabu-middleware.willers.digital/',
  tabuServerURL: 'http://localhost:3000/'
  tabuServerURL: 'http://localhost:3000/'
  //tabuServerURL: 'ws://tabu-server.willers.digital'
  //tabuServerURL: 'ws://tabu-server.willers.digital'
};
};