server updates

This commit is contained in:
Killian Marty 2023-11-18 20:17:47 +01:00
parent 80a7c81911
commit 63208cd293
5 changed files with 49 additions and 43 deletions

View file

@ -1,8 +1,9 @@
Renderer = new Render("canvas", "./assets/map/map7_recadr.png"); Renderer = new Render("canvas", "./assets/map/map7_recadr.png");
Inp = new Input("canvas"); Inp = new Input("canvas");
let Net = new Network("ws://129.151.227.50:9600/"); let Net = new Network("ws://129.151.227.50:9600/");
Net.connect();
let playerId; //id of client player
let players = [new Player(1, 100, 50, "rubiks"), let players = [new Player(1, 100, 50, "rubiks"),
new Player(2, 500, 70, "atsuyo"), new Player(2, 500, 70, "atsuyo"),
new Player(3, 600, 70, "vincent"), new Player(3, 600, 70, "vincent"),
@ -10,6 +11,10 @@ let players = [new Player(1, 100, 50, "rubiks"),
new Player(5, 200, 30, "leroux"), new Player(5, 200, 30, "leroux"),
new Player(6, 700, 700, "lele")]; new Player(6, 700, 700, "lele")];
Net.connect(); //connect to server, create a player, and retrieve all players info
players[0].retrieveServerInfo(1,100,50,3); players[0].retrieveServerInfo(1,100,50,3);
players[1].dir=5; players[1].dir=5;
players[1].visibleDir=5; players[1].visibleDir=5;

View file

@ -27,16 +27,11 @@ class Network{
} }
init(){
this.socket.send(JSON.stringify({type: "connect"}));
}
connect(){ connect(){
this.socket = new WebSocket(this.adress); this.socket = new WebSocket(this.adress);
this.socket.addEventListener('open', (e)=>{ this.socket.addEventListener('open', (e)=>{
//connected to server //connected to server
this.connected = true; this.connected = true;
this.init();
}); });
this.socket.addEventListener('message', (e)=>{ this.socket.addEventListener('message', (e)=>{
this.message(JSON.parse(e.data)); this.message(JSON.parse(e.data));

View file

@ -1,7 +1,7 @@
{ {
"name": "gtavi", "name": "gtavi",
"version": "1.0.0", "version": "1.0.0",
"lockfileVersion": 2, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"node_modules/@socket.io/component-emitter": { "node_modules/@socket.io/component-emitter": {

View file

@ -14,20 +14,13 @@ app.get('/', (req, res) => {
res.send('Grand Tabernacle Auto VI'); res.send('Grand Tabernacle Auto VI');
}); });
wss.on('connection', (socket) => { function createNewPlayer(socket){
connections.add(socket);
socket.on('message', (message) => {
message = JSON.parse(message);
if (message.type == "connect") {
var obj = { var obj = {
id: playerCount, id: playerCount,
x: 0, x: 0,
y: 0, y: 0,
name: playerCount.toString() + "joueur" name: playerCount.toString() + "joueur"
} }
players.push(obj)
playerCount++;
socket.send(JSON.stringify({ socket.send(JSON.stringify({
type: "connect", type: "connect",
@ -40,24 +33,40 @@ wss.on('connection', (socket) => {
broadcast(JSON.stringify({ broadcast(JSON.stringify({
type: "newplayer", type: "newplayer",
data: obj data: obj
})); }), obj.id);
socket.id = obj.id;
connections.add(socket);
players.push(obj);
playerCount++;
}
} else if (message.type == "ping") { wss.on('connection', (socket) => {
//create new player, send informations to new player and broadcast new player for all
createNewPlayer(socket);
socket.on('message', (message) => {
message = JSON.parse(message);
if (message.type == "ping") {
socket.send("pong"); socket.send("pong");
} else { } else if(message.type=="update") {
broadcast(JSON.stringify(message)); broadcast(JSON.stringify(message), socket.id);
} }
}); });
socket.on('close', () => { socket.on('close', () => {
for (var i = players.length - 1; i >= 0; i--) {
if(players[i].id==socket.id){
players.splice(i, 1);
}
}
connections.delete(socket); connections.delete(socket);
}); });
}); });
function broadcast(message) { function broadcast(message, exceptId = -1) {
connections.forEach((socket) => { connections.forEach((socket) => {
if (socket.readyState === WebSocket.OPEN) { if (socket.readyState === WebSocket.OPEN && socket.id!=exceptId) {
socket.send(message); socket.send(message);
} }
}); });

View file

@ -1,4 +1,4 @@
const socket = new WebSocket('ws://129.151.227.50:9600/'); const socket = new WebSocket('ws://localhost:9600'); //ws://129.151.227.50:9600
var time = new Date(); var time = new Date();
socket.addEventListener('open', (event) => { socket.addEventListener('open', (event) => {
console.log('connecté'); console.log('connecté');
@ -16,14 +16,11 @@ socket.addEventListener('close', (event) => {
function main(){ function main(){
time = new Date() time = new Date()
socket.send(JSON.stringify({type: "connect"}));
socket.send(JSON.stringify({ socket.send(JSON.stringify({
type: "update", type: "update",
data: { data: {
id: 0, ok: 'ok'
x: 0,
y: 0
} }
})) }));
} }