echange de message entre les clients
This commit is contained in:
@@ -7,10 +7,21 @@
|
|||||||
<body>
|
<body>
|
||||||
<h1>Bonjour !</h1>
|
<h1>Bonjour !</h1>
|
||||||
<p>Ceci est une page statique servie par Express.</p>
|
<p>Ceci est une page statique servie par Express.</p>
|
||||||
|
<input type="text" id="input" placeholder="message">
|
||||||
|
<button id="sendBtn">Envoyer</button>
|
||||||
<script src="/socket.io/socket.io.js"></script>
|
<script src="/socket.io/socket.io.js"></script>
|
||||||
<script>
|
<script>
|
||||||
const socket = io();
|
const socket = io();
|
||||||
console.log("Connecte au serveur, id :", socket.id);
|
console.log("Connecte au serveur, id :", socket.id);
|
||||||
|
socket.on("role", (role) => console.log("Mon rôle :", role));
|
||||||
|
socket.on("status", (msg) => console.log("Status :", msg));
|
||||||
|
document.getElementById("sendBtn").addEventListener("click", () => {
|
||||||
|
const text = document.getElementById("input").value;
|
||||||
|
socket.emit("message", text);
|
||||||
|
});
|
||||||
|
socket.on("message", (data) => {
|
||||||
|
console.log("message recu du partenaire :", data);
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -9,14 +9,44 @@ const io = new Server(server);
|
|||||||
|
|
||||||
const PORT = process.env.PORT || 3000;
|
const PORT = process.env.PORT || 3000;
|
||||||
|
|
||||||
|
let waitingPlayer = null;
|
||||||
|
|
||||||
// Sert tous les fichiers du dossier "client"
|
// Sert tous les fichiers du dossier "client"
|
||||||
app.use(express.static(path.join(__dirname, "..", "client")));
|
app.use(express.static(path.join(__dirname, "..", "client")));
|
||||||
|
|
||||||
io.on("connection", (socket) => {
|
io.on("connection", (socket) => {
|
||||||
console.log("Un client s'est connecte : ${socket.id}");
|
console.log("Un client s'est connecte : ${socket.id}");
|
||||||
|
|
||||||
|
if (waitingPlayer === null){
|
||||||
|
waitingPlayer = socket;
|
||||||
|
socket.emit("status", "En attente d'un second joueur...");
|
||||||
|
} else {
|
||||||
|
const partner = waitingPlayer;
|
||||||
|
waitingPlayer = null;
|
||||||
|
|
||||||
|
const socketIsGuide = Math.random() < 0.5;
|
||||||
|
socket.emit("role", socketIsGuide ? "guide" : "explorateur");
|
||||||
|
partner.emit("role", socketIsGuide ? "explorateur" : "guide");
|
||||||
|
|
||||||
|
socket.data.partnerId = partner.id;
|
||||||
|
partner.data.partnerId = socket.id;
|
||||||
|
|
||||||
|
socket.emit("status", "Partie prete !");
|
||||||
|
partner.emit("status", "Partie prete !");
|
||||||
|
}
|
||||||
|
|
||||||
|
socket.on("message", (data) => {
|
||||||
|
const partnerId = socket.data.partnerId;
|
||||||
|
if (partnerId){
|
||||||
|
io.to(partnerId).emit("message", data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
socket.on("disconnect", () => {
|
socket.on("disconnect", () => {
|
||||||
console.log("Client deconnecte : ${socket.id}");
|
console.log("Client deconnecte : ${socket.id}");
|
||||||
|
if (waitingPlayer === socket){
|
||||||
|
waitingPlayer = null;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user