mirror of
https://github.com/Aviortheking/Puissance4.git
synced 2025-04-23 03:12:17 +00:00
61 lines
1.3 KiB
TypeScript
61 lines
1.3 KiB
TypeScript
import express from 'express'
|
|
import WebSocket from './Websocket'
|
|
import Connection from './Connection'
|
|
|
|
interface Comm {
|
|
type?: 'request' | 'join' | 'proxy'
|
|
id?: number
|
|
xPos?: number
|
|
}
|
|
|
|
const app = express();
|
|
|
|
app.use(express.static('public'))
|
|
|
|
var server = app.listen(3000, function () {
|
|
|
|
const wsServer = new WebSocket({ port: 8080 })
|
|
|
|
wsServer.on('connection', (conn) => {
|
|
conn.send({ ok: true })
|
|
conn.on('message', (message: Comm | string) => {
|
|
if (typeof message === 'string') {
|
|
return
|
|
}
|
|
|
|
if (message?.type === 'request') {
|
|
handleRequest(conn)
|
|
}
|
|
|
|
if (message?.type === 'join' && message?.id) {
|
|
joinSession(conn, message.id)
|
|
}
|
|
|
|
if (message?.type === 'proxy' && message?.xPos) {
|
|
proxyRequest(conn, message.xPos)
|
|
}
|
|
})
|
|
})
|
|
|
|
console.log(`Example app listening at http://localhost:3000`);
|
|
});
|
|
|
|
function handleRequest(conn: Connection) {
|
|
// Générer un nombre aléatoire entre 100 et 999 et on vérifie qu'il n'y a pas déja de parti avec cette ID
|
|
|
|
// Rajouter la connection a cette partie
|
|
|
|
// renvoie au client l'ID
|
|
}
|
|
|
|
function joinSession(conn: Connection, session: number) {
|
|
// Rajouter la connection a cette partie
|
|
|
|
// renvoie au client l'ID
|
|
|
|
}
|
|
|
|
function proxyRequest(conn: Connection, xPos: number) {
|
|
// renvoyer a tout les clients du meme ID le xPos
|
|
}
|