documentation/ fica neutra (produto); visão TP, tutorial Ping e checklists de entrega movem para docs/tp/ sem link reverso. Co-authored-by: Cursor <cursoragent@cursor.com>
2.4 KiB
2.4 KiB
Plugins de referência
Dois módulos buildáveis no catálogo; o chat unifica o antigo mpChat (multicast, unicast, TCP e canal TCP privado).
Comparativo
| plugins/chat | plugins/screencast | |
|---|---|---|
| Build | Ant | Ant |
| id | chat |
screencast |
| Classe | ChatPlugin |
ScreenCastPlugin |
| Mensagem | ChatMessage, LegacyMpChatMessage |
ScreenCastMessage |
| UI | ChatPanel (destino + transporte) |
ScreenCastPanel (destino + transporte) |
| TCP privado | Toggle no ChatPanel + hooks receiveBytes (histórico private:<IP>) |
— |
plugins/chat
Fluxo resumido:
ChatPlugin.createPluginregistraChatPanele peer actions (sala, peer, TCP privado).- Envio: usuário escolhe destino e
TransportMode→MessageDispatcher→ UDP ou TCP do núcleo. - Recepção:
ChatMessageemreceiveMessage→ histórico na aba correta (sala, IP ou canal privado). - TCP privado: toggle desliga o combo de transporte e usa bytes dedicados ao plugin.
Código de entrada: plugins/chat/src/pitiupi/chat/plugin/ChatPlugin.java.
flowchart LR
UI[ChatPanel] --> Disp[MessageDispatcher]
Disp --> CM[ConnectionManager]
CM --> Net[UDP ou TCP]
Net --> CM2[ConnectionManager peer]
CM2 --> CP[ChatPlugin.receiveMessage]
CP --> UI2[ChatPanel peer]
plugins/screencast
Fluxo resumido:
- Captura de tela em loop (com throttling) →
ScreenCastMessagecom imagem serializada. - Destino geral: multicast; um peer: unicast/TCP conforme painel.
SessionNoticeMessage(núcleo) marca início/fim de sessão para fechar abas de recepção.
Código de entrada: plugins/screencast/src/pitiupi/screenCast/plugin/ScreenCastPlugin.java.
Limitação: largura de banda e MTU — frames grandes podem sofrer perda em UDP; adequado para demonstração, não para produção.
Limitações (não são bugs)
Os plugins de referência são exemplos de demonstração, não produtos completos:
| Plugin | Inclui | Não inclui (de propósito) |
|---|---|---|
| chat | texto, sala geral, unicast/multicast/TCP, TCP privado básico | imagens, moderação, histórico persistente, criptografia |
| screencast | stream read-only, avisos de sessão | controle remoto do mouse/teclado, áudio |
Para evoluir: copie o padrão (Plugin + mensagens + painel na aba) e acrescente features no seu JAR — sem inflar o núcleo. Ver 10_tutorial_plugin.md.