background image

 

Νικόλας Ψύλλου, Σχεδίαση και Υλοποίηση διαδικτυακής πλατφόρμας για 
εξυπηρέτηση παιχνιδιών καρτών απομακρυσμένων παικτών
 

 

Πτυχιακή / Διπλωματική Εργασία 

 

110 

deleteRankRow 

getUpdateRankRow 

setOnlineSocketUser 

getLastGame, 
getUsersOnline 

setOfflineSocketUser 

getUsersOnline 

Πίνακας 1 - Web Socket Events 

 
Σημείωση: Κάποια συμβατά στην δεύτερη στήλη είναι κενά καθώς λαμβάνει απάντηση 
στο συμβάν μόνο ο χρήστης που το κάλεσε. 
 

 
Με  την  είσοδο  του  χρήστη  στην  πλατφόρμα,  είτε  ως  εγγεγραμμένος  είτε  ως 

ανώνυμος, γίνεται καταγραφή της σύνδεσης μέσω του συμβάντος setOnlineSocketUser 
και  ο  διακομιστής  ενημερώνει  τους  υπόλοιπους  χρήστες  μέσο  του  συμβάντος 
getUsersOnline  για  τον  νέο  αριθμό  των  συνδεδεμένων  χρηστών.  Με  παρόμοιο  τρόπο 
γίνεται  και  η  ενημέρωση  του  χρήστη  ως  μη  συνδεδεμένος  με  την  χρήση  του  συμβάν 
setOfflineSocketUser.  

 Με  την  είσοδο  του  ο  χρήστης  στο  προθάλαμο  λαμβάνει  όλα  τα  διαθέσιμα 

τραπέζια  που  είναι  διαθέσιμα  για  παιχνίδι  μέσω  του  συμβάν  getAllOnlineTable.  Ένας 
εγγεγραμμένος χρήστης  μπορεί  να  δημιουργήσει  ένα  ΗΤ  ή  να  το  διαγράψει  αν  είναι  ο 
δημιουργός  του  με  την  χρήση  των  createOnlineTable  και  removeTable.  Το  front-end 
λαμβάνει  με  συμβάν  από  το  διακομιστή  το  τραπέζι  που  πρέπει  με  προσθέσει  ή  να 
αφαιρέσει μέσω των getOnlineTable και getRemoveTable. Ο προθάλαμος λαμβάνει και 
το συμβάν getTableUsers, που αφορά στοιχεία για τους χρήστες που έχουν συνδεθεί ή 
αποσυνδεθεί  από  ένα  ΗΤ  μέσω  των  joinTable,  leaveTable,  removePlayer.  Επίσης 
λαμβάνει και το συμβάν getUpdateTable που ενημερώνει τις καταστάσεις των ΗΤ ώστε 
να αφαιρείται από την λίστα των ΗΤ όταν δεν είναι διαθέσιμο και να προστίθεται αν είναι 
πάλι διαθέσιμο για να δεχθεί νέους παίχτες.  

Το συμβάν getTableUsers λαμβάνεται και στο ΗΤ ώστε να ενημερώνεται η λίστα 

με τους συνδεδεμένους παίχτες του. Οι παίχτες στο ΗΤ χρησιμοποιούν μόνο τα συμβάντα 
setPlayerPlaying,  updateCard  και  sendMessage.  Το  πρώτο  αφορά  την  ενημέρωση  του 
παίχτη προς τους άλλους παίχτες ότι είναι η σειρά του για να παίξει, το δεύτερο σχετίζεται 
με  οποιαδήποτε  ενέργεια  έχει  ο  παίχτης  με  μία  κάρτα  και  το  τελευταίο  αφορά  τα 
μηνύματα που στέλνει στην ομαδική συνομιλία του ΗΤ.  

Ο GM, λόγω και του καθοριστικού ρόλου που έχει στο ΗΤ, χρησιμοποιεί επιπλέον 

συμβάντα που είναι τα εξής:  

•  setTurnTableUsers: Καθορίζει την σειρά που κάθονται και θα παίζουν οι παίχτες 

στο ΗΤ 

•  setNextPlayer: Ενημερώνει τον αμέσως επόμενο ή προηγούμενο παίχτη ότι παίζει 
•  setTeamTableUser: Θέτει την ομάδα που θα έχει ο παίχτης  
•  setRoleTableUser: Θέτει τον ρόλο που θα έχει ο παίχτης 
•  setStatusTableUser: Θέτει την κατάσταση που βρίσκεται ένας παίχτης 
•  stopGame:  Σταματάει  το  παιχνίδι,  μαζεύει  τις  κάρτες  από  τους  παίχτες  και  οι 

παίχτες παραμένουν στο τραπέζι  

•  newGame: Ξεκινάει το παιχνίδι και μοιράζει τις κάρτες τους παίχτες και τις άδειες 

τράπουλες