Alinha mpChat e screenCast a ConnectionManager/GuiManager, adiciona docs em docs/ e README de plugins; remove artefatos de build do índice. Co-authored-by: Cursor <cursoragent@cursor.com>
1.8 KiB
1.8 KiB
Fundamentação — redes e código
Mapa entre conceitos de Redes de Computadores e o Pitiupi. Aprofundamento: references/README.md.
Camada de aplicação P2P
| Conceito | No Pitiupi |
|---|---|
| Aplicação distribuída sem servidor dedicado | Cada peer executa o mesmo núcleo + plugins |
| Identidade do participante | Nome no login + HeartbeatMessage (instância) |
| Broadcast lógico | UDP multicast no grupo 224.0.0.3 |
| Comunicação 1:1 | UDP unicast ou TCP com conexão persistente |
UDP
- Sem conexão; mensagens delimitadas por datagrama.
- Multicast economiza envios para todos os peers do grupo.
- Limitações: perda, ordem, MTU — relevante para plugins com imagens (screenCast).
Doc: 05_udp_multicast.md.
TCP
- Conexão orientada a fluxo; o núcleo adiciona framing (tamanho + payload).
- Uma conexão por endereço de peer reutilizada para várias mensagens.
- Fechamento quando peer some do heartbeat.
Doc: 06_tcp_conexoes.md.
Presença
Heartbeats periódicos em UDP; timeout ~15 s. Analogia com “keepalive” de presença, não com camada de transporte confiável.
Doc: 08_heartbeat_e_presenca.md.
Serialização
Objetos Java Serializable em byte[] — acoplamento de versão de classes entre peers (mesmo plugin instalado).
Doc: 07_mensagens_e_serializacao.md.
Extensibilidade
SPI e classloader por JAR — padrão de plug-in em aplicações Java.
Doc: 09_sistema_de_plugins.md.