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");
Inp = new Input("canvas");
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"),
new Player(2, 500, 70, "atsuyo"),
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(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[1].dir=5;
players[1].visibleDir=5;

View file

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

View file

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

View file

@ -14,20 +14,13 @@ app.get('/', (req, res) => {
res.send('Grand Tabernacle Auto VI');
});
wss.on('connection', (socket) => {
connections.add(socket);
socket.on('message', (message) => {
message = JSON.parse(message);
if (message.type == "connect") {
function createNewPlayer(socket){
var obj = {
id: playerCount,
x: 0,
y: 0,
name: playerCount.toString() + "joueur"
}
players.push(obj)
playerCount++;
socket.send(JSON.stringify({
type: "connect",
@ -40,24 +33,40 @@ wss.on('connection', (socket) => {
broadcast(JSON.stringify({
type: "newplayer",
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");
} else {
broadcast(JSON.stringify(message));
} else if(message.type=="update") {
broadcast(JSON.stringify(message), socket.id);
}
});
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);
});
});
function broadcast(message) {
function broadcast(message, exceptId = -1) {
connections.forEach((socket) => {
if (socket.readyState === WebSocket.OPEN) {
if (socket.readyState === WebSocket.OPEN && socket.id!=exceptId) {
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();
socket.addEventListener('open', (event) => {
console.log('connecté');
@ -16,14 +16,11 @@ socket.addEventListener('close', (event) => {
function main(){
time = new Date()
socket.send(JSON.stringify({type: "connect"}));
socket.send(JSON.stringify({
type: "update",
data: {
id: 0,
x: 0,
y: 0
ok: 'ok'
}
}))
}));
}