MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Web Socket API

Web Socket API

Web Socket API permite organizarea unei conexiuni între client și server, prin care clientul și serverul pot trimite date unul altuia în orice moment.

Pentru a crea o conexiune prin Web Socket API se utilizează constructorul WebSocket():

const connection = new WebSocket("ws://example.com/test");

Gestionarea ciclului de viață al conexiunii

Pentru gestionarea conexiunii, sunt definite trei evenimente principale: open, error și close.

const connection = new WebSocket("ws://example.com/test");
connection.onopen = (event) => {
  console.log("Connection opened");
};
connection.onerror = (error) => {
  console.log(`WebSocket Error: ${error}`);
};
connection.onclose = (event) => {
  console.log("Connection closed");
};

Trimiterea datelor către server

connection.onopen = (event) => {
  connection.send("Hello FDC.COM");
};
const data = { message: "Hello" };
connection.send(JSON.stringify(data));

Recepția datelor

connection.onmessage = (event) => {
  console.log(event.data);
};
connection.binaryType = "arraybuffer";

Închiderea conexiunii

connection.close();

Exemplu de server Node.js

const WebSocket = require("ws");
const server = new WebSocket.Server({ port: 9000 });

server.on("connection", function(client) {
  console.log("Connection opened");
  client.on("message", function(message) {
    console.log("Client message:", message.toString());
    client.send("Hello Client");
  });
  client.on("close", function() {
    console.log("Connection closed");
  });
});
console.log("Serverul a fost lansat pe portul 9000");

Cod client simplu HTML + JS

const connection = new WebSocket("ws://localhost:9000");
connection.onopen = (event) => {
  console.log("Connection opened");
  connection.send("Hello Server");
};
connection.onerror = (error) => {
  console.log(`WebSocket Error: ${error}`);
};
connection.onclose = (event) => {
  console.log("Connection closed");
};
connection.onmessage = (event) => {
  console.log("Server response:", event.data);
};
← Lecția anterioară Lecția următoare →