// Servidor Express simples (Node.js)
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json());
// Base de dados simulada
let produtos = [
{ id: 1, nome: 'Laptop', preco: 1200 },
{ id: 2, nome: 'Smartphone', preco: 800 }
];
// Endpoint para obter produtos
app.get('/api/produtos', (req, res) => {
res.json(produtos);
});
app.listen(port, () => {
console.log(`Servidor a correr na porta ${port}`);
});
// Exemplo simplificado usando WebRTC para comunicação P2P
// No browser do cliente
// Conexão com outro peer
const connectToPeer = async (peerId) => {
const connection = new RTCPeerConnection();
// Configurar canais de dados
const dataChannel = connection.createDataChannel('fileShare');
dataChannel.onopen = () => {
console.log('Conexão P2P estabelecida!');
};
dataChannel.onmessage = (event) => {
console.log('Ficheiro recebido:', event.data);
// Processar o ficheiro recebido
};
// Enviar ficheiro para outro peer
const sendFile = (file) => {
// Dividir o ficheiro em chunks e enviar
const chunkSize = 16384;
const fileReader = new FileReader();
let offset = 0;
fileReader.onload = (e) => {
dataChannel.send(e.target.result);
offset += chunkSize;
if (offset < file.size) {
readSlice(offset);
}
};
const readSlice = (o) => {
const slice = file.slice(o, o + chunkSize);
fileReader.readAsArrayBuffer(slice);
};
readSlice(0);
};
};