Open Source · Gratuito

Comunicação instantânea na sua rede local

Mensageiro LAN para escritórios. Leve, prático e direto ao ponto.

Windows 10/11 · ~20 MB

Recursos

Mensagens Instantâneas

Chat individual e em grupo com emojis coloridos, estilo bolha ou linear.

Transferência de Arquivos

Envie arquivos até 100 MB diretamente pela rede local com velocidade máxima.

Grupos Temporários e Fixos

Crie grupos para equipes, departamentos ou projetos.

Notificações Windows

Notificações clicáveis que abrem direto na conversa.

Auto-Update

Atualizações automáticas. O app detecta, baixa e instala sozinho.

100% Local

Nenhum dado sai da sua rede. Comunicação direta entre máquinas, sem intermediários.

Transmitir Mensagem

Envie comunicados para vários contatos de uma vez.

Instalação em 3 passos

01

Baixe o instalador

Execute o MBChat_Setup.exe em cada máquina.

02

Abra o app

Detecta automaticamente todos os colegas na rede.

03

Comece a conversar

Mensagens, arquivos e grupos funcionando instantaneamente.

Documentação

Estrutura de Arquivos

Caminho Descrição
%LOCALAPPDATA%\Programs\MBChat\ Pasta de instalação (MBChat.exe + _internal/)
%APPDATA%\.mbchat\ Dados do usuário (banco, imagens, preferências)
%APPDATA%\.mbchat\mbchat.db Banco de dados SQLite (mensagens, contatos, grupos, lembretes)
%APPDATA%\.mbchat\images\ Imagens recebidas no chat (clipboard paste)
%APPDATA%\MBChat\mbchat.log Log de erros e debug
%USERPROFILE%\MB_Chat_Files\ Arquivos recebidos via transferência (padrão, configurável)

Banco de Dados

O MB Chat usa SQLite local em cada máquina — não há servidor central nem banco compartilhado. Cada PC guarda o próprio histórico, contatos e configurações. O banco roda em modo WAL (Write-Ahead Logging), que permite leituras e escritas simultâneas com segurança e desempenho.

Motor e arquivos

ItemValor
MotorSQLite 3 (embutido no app, sem instalação)
Banco principal%APPDATA%\.mbchat\mbchat.db
Write-Ahead Log%APPDATA%\.mbchat\mbchat.db-wal
Shared memory%APPDATA%\.mbchat\mbchat.db-shm
Temas personalizados%APPDATA%\.mbchat\user_themes.json
⚠️ Os três arquivos .db + .db-wal + .db-shm são uma unidade atômica do WAL. Ao fazer backup manual (copiando arquivos), salve os três juntos — copiar só o .db com o app aberto pode resultar em banco incompleto ou corrompido. O Backup pelo próprio app (Ferramentas > Backup do histórico) resolve isso usando a API de cópia consistente do SQLite. Veja Backup e Restauração.

Padrões do esquema (convenções)

  • Migrações aditivas: colunas novas entram via ALTER TABLE ... ADD COLUMN protegido por try/except — nunca apagam dados nem quebram bancos antigos. Tabelas usam CREATE TABLE IF NOT EXISTS.
  • Timestamps: sempre REAL (epoch Unix em segundos, ex.: timestamp, created_at, remind_at).
  • Booleanos: INTEGER 0/1 (ex.: is_sent, is_read, archived, completed).
  • Listas/estruturas: guardadas como TEXT em JSON (ex.: polls.options, reminders.invited_uids).
  • Identidade: o user_id do usuário é persistente (salvo em local_user) — não muda ao trocar de Wi-Fi para Ethernet, evitando histórico fragmentado e usuários fantasmas.
  • SQL parametrizado: todas as queries usam ? (nunca concatenação de strings) — sem injeção de SQL.
  • Histórico permanente: mensagens nunca são podadas (cresce sem limite). Grupos encerrados são arquivados (archived=1), não apagados, para preservar nome e tipo no histórico.

Conexão e PRAGMAs

Cada thread tem a própria conexão (threading.local), aberta com:

PRAGMA journal_mode=WAL      -- leituras simultâneas a escritas
PRAGMA busy_timeout=30000    -- aguarda até 30s se o banco estiver ocupado
PRAGMA foreign_keys=ON       -- integridade referencial ativa

Tabelas

TabelaColunas principaisConteúdo
local_useruser_id, display_name, status, note, ramal, avatar_indexIdentidade do usuário local (singleton id=1, user_id persistente)
contactsuser_id (PK), display_name, ip_address, hostname, status, department, ramal, avatar_dataPeers conhecidos na rede
messagesid (PK), msg_id, from_user, to_user, content, msg_type, timestamp, is_sent, is_read, reply_to_id, file_pathHistórico completo (texto, imagens, arquivos, sistema). Índices por usuários e por tempo
file_transfersfile_id (UNIQUE), from_user, to_user, filename, filepath, filesize, status, progress, timestampHistórico de transferências (enviadas e recebidas)
settingskey (PK), valuePreferências chave-valor (tema, alertas, rede, VPN, etc.)
groupsgroup_id (PK), name, group_type (temp/fixed), creator_uid, archivedGrupos de chat (arquivados em vez de apagados)
group_membersgroup_id, uid, display_name, ip, is_adminMembros de cada grupo (chave composta group_id+uid)
reactionsmsg_id, emoji, from_user, tsReações emoji por mensagem e usuário
polls / poll_votespoll_id, group_id, question, options (JSON) / voter_uid, option_indexEnquetes de grupo e votos
remindersid (PK), text, remind_at, completed, recurrence_rule, share_status, invited_uids (JSON)Lembretes pessoais, recorrentes e compartilhados
manual_peersip (PK), note, created_atPeers fora da LAN (VPN/Tailscale). Vazio = zero overhead na LAN
block_listuser_id (PK), display_name, ip_address, blocked_atUsuários bloqueados
roomsid (PK), nameSalas de reunião (Sala de Vidro, Marcus Barra, Certificado Digital)
bookingsbooking_id (PK), room_id (FK), title, creator_uid, start_ts, end_ts, status, is_deletedReservas de sala (Agendar > Reunião). Índice por sala+horário
booking_participantsbooking_id (FK), uid, display_name, responseConvidados de cada reserva (UNIQUE booking_id+uid)

Esquema canônico (DDL das tabelas centrais)

CREATE TABLE IF NOT EXISTS local_user (
    id INTEGER PRIMARY KEY CHECK (id = 1),   -- singleton
    user_id TEXT NOT NULL,                    -- persistente (MAC+hostname)
    display_name TEXT NOT NULL,
    status TEXT DEFAULT 'online',
    note TEXT DEFAULT '',
    created_at REAL NOT NULL,
    updated_at REAL NOT NULL
);

CREATE TABLE IF NOT EXISTS contacts (
    user_id TEXT PRIMARY KEY,
    display_name TEXT NOT NULL,
    ip_address TEXT NOT NULL,
    status TEXT DEFAULT 'offline',
    last_seen REAL NOT NULL,
    first_seen REAL NOT NULL
);

CREATE TABLE IF NOT EXISTS messages (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    msg_id TEXT NOT NULL,
    from_user TEXT NOT NULL,
    to_user TEXT NOT NULL,        -- user_id, 'group:...', 'broadcast'
    content TEXT NOT NULL,
    msg_type TEXT DEFAULT 'text', -- text | file | system
    timestamp REAL NOT NULL,
    is_sent INTEGER DEFAULT 0,
    is_read INTEGER DEFAULT 0
);
CREATE INDEX IF NOT EXISTS idx_messages_users ON messages(from_user, to_user);
CREATE INDEX IF NOT EXISTS idx_messages_time  ON messages(timestamp);

CREATE TABLE IF NOT EXISTS settings (
    key TEXT PRIMARY KEY,
    value TEXT NOT NULL
);
Resumo do que importa: banco SQLite por máquina, em %APPDATA%\.mbchat\, modo WAL (3 arquivos atômicos), esquema evolui só por migrações aditivas, histórico permanente sem poda. O instalador oficial nunca toca nessa pasta — seus dados sobrevivem a updates e reinstalações.

Portas de Rede

Porta Protocolo Uso
50100 UDP Discovery (multicast + broadcast)
50101 TCP Mensagens, convites de grupo, enquetes
50102 TCP Transferência de arquivos
50200–51199 TCP Lock de instância única por usuário (loopback). Cada login Windows obtém uma porta derivada de MD5(usuário) mod 1000 + 50200, permitindo que múltiplos usuários na mesma máquina abram o app simultaneamente sem conflito.

Descoberta de Peers — por que o MB Chat é mais confiável que o LAN Messenger

O LAN Messenger tem um problema conhecido: peers somem da lista ou demoram a aparecer quando a rede tem VPN, Hyper-V, switches gerenciados ou filtros de multicast. O MB Chat resolveu isso com cinco decisões de design que trabalham juntas:

Mecanismo O que faz
Tri-broadcast Cada announce sai por 3 caminhos simultâneos: multicast (239.255.100.200), broadcast global (255.255.255.255) e subnet-directed broadcast (ex: 192.168.0.255). Se o multicast for filtrado pelo switch/VPN, os broadcasts garantem entrega. Para um peer sumir, as 3 rotas teriam que falhar.
Anúncio imediato em eventos Trocar status, nome, nota ou avatar dispara _send_announce() na hora — não espera o próximo ciclo. Mudanças chegam em menos de 1 segundo.
Anúncio no startup O primeiro announce é enviado antes do loop periódico começar, então um peer recém-aberto aparece na rede instantaneamente.
Detecção de NIC correta Função get_local_ip() usa rota real pra 8.8.8.8 + enumeração + filtro de interfaces virtuais (Hyper-V, Docker, VPN). Evita o bug clássico do LAN Messenger de sair pela NIC errada em PCs com VPN ativa.
Ciclo curto de refresh Announce a cada 15s (vs ~60s do LAN Messenger). Timeout de presença em 45s — 3× o intervalo, garantindo que 1 pacote perdido não derrube o peer.
Resultado: A combinação de tri-broadcast + anúncio imediato em eventos + detecção correta de NIC é o que faz o MB Chat ser mais confiável.

VPN / Home-office — conectar no escritório de fora

O MB Chat descobre computadores usando multicast + broadcast local. Redes VPN normais bloqueiam esse tráfego de descoberta. Para resolver isso, a partir da v1.8.9, o MB Chat possui o modo Proxy de Descoberta (Announce Relay) compatível com Tailscale, PPTP, L2TP, VPN do Windows e qualquer túnel que roteie tráfego TCP unicast. Basta configurar 1 computador do escritório para agir como ponte (Âncora).

VPN do Windows (Hyper-V / WinNAT / WSL / Docker): essas tecnologias também criam adaptadores de rede virtuais que podem interferir com o discovery. Se você tem Hyper-V ou Docker instalado e o app está com problemas, veja a seção Firewall — caso especial Hyper-V abaixo.

Como funciona o Proxy VPN

  1. O PC de casa (Home-Office) conecta no Tailscale e recebe um IP na faixa 100.x.x.x.
  2. No MB Chat de casa, você cadastra o IP Tailscale de apenas 1 PC do escritório (a Âncora) que também tenha o Tailscale rodando.
  3. O seu app de casa começa a enviar "avisos de presença" diretos (Unicast) para essa Âncora.
  4. A Mágica (v1.8.9): Quando a Âncora recebe o seu aviso via Tailscale, ela clona a mensagem e retransmite (relay) para todos os outros computadores do escritório pela rede local, substituindo o seu IP local conflituoso pelo seu IP do Tailscale.
  5. Todos os colegas do escritório descobrem você instantaneamente, achando que você está lá, e qualquer mensagem enviada para você será roteada automaticamente pela VPN!
Topologia Exigida: Para o tráfego de mensagens fluir corretamente, os computadores do escritório que quiserem falar com você também precisam acessar o IP 100.x.x.x. Isso é resolvido de duas formas: (1) O PC Âncora é configurado como Subnet Router no painel do Tailscale, roteando a rede inteira; OU (2) Todos os PCs do escritório também instalam o Tailscale.

Passo a passo — Configurar a Casa (Home-Office)

  1. Garanta que o Tailscale está rodando.
  2. No MB Chat, acesse Ferramentas → Conectar fora da LAN (VPN)…
  3. No campo IP do peer, digite o IP Tailscale (100.x.x.x) do PC Âncora que fica no escritório.
  4. Clique em Adicionar e depois marque a caixa Ativar conexão VPN (O status ficará ATIVADO).
  5. Feche a janela. Em até 10 segundos, os colegas do escritório aparecerão na sua tela e você na deles!

Passo a passo — Desativar (quando voltar ao escritório)

  1. Ao levar seu notebook de volta fisicamente para a empresa, vá em Ferramentas → Conectar fora da LAN (VPN)…
  2. Desmarque o checkbox Ativar conexão VPN. O status mudará para DESATIVADO.
  3. O app parará de forçar o anúncio pela VPN e voltará a usar 100% o multicast local da empresa, evitando conflitos de rota. Os IPs cadastrados continuam salvos para o seu próximo dia de home-office.

Multi-usuário — a mesma máquina com logins Windows diferentes

O MB Chat suporta múltiplos logins Windows na mesma máquina simultaneamente. Cada usuário abre sua própria instância sem um bloquear o outro. Desde a v1.4.64, o lock de instância única é calculado por usuário: porta = 50200 + MD5(getpass.getuser().toLower()) mod 1000, gerando uma porta determinística distinta por login dentro da faixa [50200, 51199].

Antes da v1.4.64: o lock usava porta fixa 50199. Quando um usuário deixava o MB Chat rodando em background (ex.: minimizado na bandeja) e outro login entrava na mesma máquina, o novo usuário não conseguia abrir o app — o check detectava o socket do outro e saía silenciosamente via os._exit(0), sem erro visível.

Cenário típico: PC de trabalho compartilhado onde dois funcionários fazem login em momentos diferentes. A partir da v1.4.64 cada um tem sua própria porta — sem colisão, sem necessidade de fechar manualmente o app do outro usuário antes de abrir o seu. Se você está em uma versão anterior e o app não abre em um login, verifique se outro usuário da máquina ainda tem o MB Chat rodando na bandeja; feche por lá ou atualize para a v1.4.64+.

Firewall — PC aparece online pra outros mas não vê ninguém

Sintoma: o PC abre o MB Chat e a lista fica vazia, mas os outros PCs enxergam ele como online normalmente. Reinstalar o app não resolve. Causa: o Windows Defender Firewall está bloqueando pacotes de entrada (inbound) nas portas do MB Chat. A partir da v1.4.59 o app detecta isso na primeira execução e pede permissão via UAC para criar as regras automaticamente. Se a janela for recusada ou não aparecer, basta liberar manualmente:

  1. Abrir Painel de Controle → Sistema e Segurança → Windows Defender Firewall → Aplicativos permitidos (ou rodar control firewall.cpl e clicar em Permitir um aplicativo ou recurso pelo Firewall do Windows Defender).
  2. Clicar em Alterar preferências (precisa de admin).
  3. Procurar MBChat na lista. Se já aparecer, marcar as duas caixas: Particular e Público.
  4. Se não aparecer, clicar em Permitir outro aplicativo…, Procurar… e selecionar MBChat.exe em C:\Program Files\MBChat\MBChat.exe (ou %LOCALAPPDATA%\Programs\MBChat\MBChat.exe). Adicionar e marcar as duas caixas.
  5. Clicar OK, fechar o MB Chat e abrir de novo — os peers aparecem em até 15 segundos.
Alternativa rápida via admin: rodar o tools/fix_firewall.bat (no repositório) como administrador — ele cria as regras por porta (UDP 50100/50110/50120 + TCP 50101/50102), sobrevive a reinstalações e reinicia o app.

Caso especial — PC envia mas não recebe (Hyper-V / WSL / Docker)

Em PCs com Hyper-V, WSL 2 ou Docker Desktop instalados, o Windows pode reservar dinamicamente a faixa de portas 50101–50400 para redes virtuais internas. O app não consegue abrir a porta TCP padrão, cai para uma porta aleatória (ex: 50078) — mensagens saem normalmente, mas não chegam porque a regra de firewall só cobre a 50101.

Como confirmar (PowerShell como admin):

netsh int ipv4 show excludedportrange protocol=tcp

Se 50101 aparecer dentro de um range listado, este é o problema. Solução:

  1. Fix imediato — abre inbound no range de fallback:
    netsh advfirewall firewall add rule name="MBChat TCP In Dynamic" protocol=TCP dir=in localport=50060-50130 action=allow profile=any
  2. Fix permanente — protege a porta antes do Hyper-V reservar (requer reboot):
    net stop winnatnetsh int ipv4 add excludedportrange protocol=tcp startport=50100 numberofports=5net start winnat → reiniciar o PC.
    Após o reboot o app volta a usar 50101 normalmente.

Peer VPN visível mas duplo-clique não abre chat

Sintoma: um colega em home-office (VPN) aparece na lista de contatos mas duplo-clique não abre nada e clique-direito não exibe menu. Afeta apenas a relação entre dois usuários específicos — outros conseguem clicar normalmente.

Causa raiz: O banco local do usuário afetado acumulou registros duplicados ou com identidade trocada para esse peer — geralmente resquício de antes da v1.6.9 (user_id persistente). O _load_saved_contacts na inicialização carrega o registro errado, criando um mapeamento inconsistente entre o item do TreeView e o peer_items em memória. O duplo-clique não consegue localizar o UID pelo IID clicado e retorna silenciosamente.

Fix — sem nova instalação

Rodar no PC afetado (PowerShell como administrador não é necessário):

# 1. Fecha o app
taskkill /f /im MBChat.exe

# 2. Baixa sqlite3 portátil (1 arquivo, ~2 MB) e deleta o registro corrompido
Invoke-WebRequest -Uri "https://www.sqlite.org/2024/sqlite-tools-win-x64-3460100.zip" -OutFile "$env:TEMP\sq.zip"
Expand-Archive "$env:TEMP\sq.zip" -DestinationPath "$env:TEMP\sq" -Force
$sq = Get-ChildItem "$env:TEMP\sq" -Recurse -Filter "sqlite3.exe" | Select-Object -First 1 -ExpandProperty FullName
cd "$env:APPDATA\.mbchat"
# Confirma que o registro existe antes de deletar:
& $sq mbchat.db "SELECT user_id, display_name, ip_address, status FROM contacts WHERE display_name LIKE '%NomeDoPeer%';"
# Deleta pelo IP VPN ou pelo nome:
& $sq mbchat.db "DELETE FROM contacts WHERE ip_address='IP_DO_PEER_VPN';"
# OU: & $sq mbchat.db "DELETE FROM contacts WHERE display_name LIKE '%NomeDoPeer%';"

# 3. Reabre — o peer será redescoberto via UDP em ~30s
Start-Process "$env:PROGRAMFILES\MBChat\MBChat.exe"
Segurança: Deletar da tabela contacts não apaga o histórico de mensagens (tabela messages). O histórico fica íntegro; apenas o peer será redescoberto como se fosse o primeiro contato.

A partir da v1.8.27 o duplo-clique usa identify_row(e.y) em vez de selection(), tornando o app resiliente a esse mapeamento inconsistente — mesmo que o registro fique corrompido, o chat abre normalmente.

Backup e Restauração do Histórico

A partir da v1.8.28, o backup é feito pelo próprio MB Chat — com o app aberto, em um único arquivo .zip, sem mexer em pastas ocultas. O método manual continua valendo como alternativa.

Backup pelo próprio app (recomendado)

  1. Abrir Ferramentas > Backup do histórico...
  2. Escolher onde salvar o MBChat_backup_AAAAMMDD_HHMM.zip (pendrive, rede, nuvem)
  3. Pronto — o zip contém o banco completo (mensagens, contatos, grupos, lembretes, configurações), os temas personalizados e a foto de perfil
✅ Pode fazer com o app aberto: o backup usa a API nativa de cópia do SQLite, que gera um arquivo consistente mesmo durante o uso — sem risco de corromper o banco.

Restaurar pelo app (reinstalação ou outro computador)

  1. Instalar o MB Chat normalmente no computador de destino
  2. Abrir Ferramentas > Restaurar backup... e selecionar o .zip
  3. Confirmar a substituição do histórico atual
  4. Fechar e abrir o MB Chat — a troca acontece na abertura, antes de qualquer conexão, e o histórico completo aparece restaurado

Método manual (alternativa)

Todo o histórico fica em uma única pasta oculta no perfil Windows. Copiar essa pasta inteira para um local seguro também é um backup válido.

Onde ficam os dados

ArquivoCaminhoConteúdo
mbchat.db%APPDATA%\.mbchat\Banco SQLite — mensagens, contatos, lembretes, configurações
mbchat.db-wal%APPDATA%\.mbchat\WAL do SQLite — obrigatório salvar junto
mbchat.db-shm%APPDATA%\.mbchat\Shared memory — obrigatório salvar junto
user_themes.json%APPDATA%\.mbchat\Temas personalizados criados pelo usuário
Arquivos recebidos%USERPROFILE%\Documentos\MBFiles\Arquivos, imagens e documentos recebidos via chat
⚠️ Atenção: Os três arquivos .db, .db-wal e .db-shm formam uma unidade do SQLite em WAL mode. Salvar só o .db sem os outros dois pode resultar em banco corrompido ou histórico incompleto.

Como fazer backup

  1. Fechar o MB Chat completamente pelo ícone na bandeja (não só minimizar)
  2. Abrir o Explorador de Arquivos e navegar até %APPDATA%\.mbchat\
  3. Copiar a pasta .mbchat inteira para um local seguro (pendrive, rede, nuvem)
  4. Opcionalmente copiar também a pasta %USERPROFILE%\Documentos\MBFiles\ (arquivos recebidos)

Como restaurar

  1. Instalar o MB Chat normalmente
  2. Fechar o app antes de copiar
  3. Copiar os arquivos do backup de volta para %APPDATA%\.mbchat\
  4. Abrir o MB Chat — histórico completo restaurado automaticamente

Aviso: Revo Uninstaller e desinstaladores de terceiros

O Revo Uninstaller no modo Avançado varre o disco por arquivos "órfãos" e pode deletar a pasta %APPDATA%\.mbchat\ mesmo sem ela fazer parte do instalador oficial (que preserva os dados por design). Sempre faça backup antes de usar desinstaladores de terceiros. Se for usar o Revo, utilize o modo Moderado para preservar o histórico.

Banco corrompido

Se ao abrir o app o histórico aparecer vazio ou der erro, o banco pode estar corrompido — geralmente por cópia feita com o app aberto. Se você tiver os três arquivos (.db + .db-wal + .db-shm) do mesmo backup, restaure os três juntos: o SQLite fará o checkpoint automático na próxima abertura e recuperará os dados. Somente o .db sem os outros dois é irrecuperável.

Desinstalação Completa

O desinstalador (Painel de Controle > Desinstalar) remove o executável e oferece a opção de manter ou apagar o histórico. Para limpeza total manual, remova os seguintes itens:

O que remover Caminho
Aplicação %LOCALAPPDATA%\Programs\MBChat\
Banco de dados e imagens %APPDATA%\.mbchat\
Log %APPDATA%\MBChat\
Arquivos recebidos %USERPROFILE%\MB_Chat_Files\
Atalho Desktop %USERPROFILE%\Desktop\MB Chat.lnk
Atalho Iniciar com Windows %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\MB Chat.lnk
Menu Iniciar %APPDATA%\Microsoft\Windows\Start Menu\Programs\MB Chat\
Registro (auto-start) HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MBChat
Registro (protocolo URL) HKCU\Software\Classes\mbchat\
Dica: Ao desinstalar pelo Painel de Controle, escolha "SIM" para manter o histórico ou "NÃO" para apagar tudo automaticamente. A limpeza manual só é necessária se a desinstalação falhar ou se quiser remover absolutamente todos os rastros.
⚠️ Atenção — Revo Uninstaller e desinstaladores de terceiros: o desinstalador oficial do MB Chat preserva a pasta de dados %APPDATA%\.mbchat\ (banco e histórico) quando você escolhe "SIM" para manter os dados — e a reinstalação posterior recupera tudo automaticamente. Já o Revo Uninstaller no modo Avançado varre o disco por arquivos "órfãos" e pode apagar essa pasta mesmo sem ela fazer parte do instalador, destruindo o histórico de forma irreversível. Se for usar o Revo, utilize sempre o modo Moderado. Em qualquer caso, faça um backup antes pelo próprio app em Ferramentas > Backup do histórico... (veja Backup e Restauração).

Problemas de Rede e Mensagens com Atraso (Timeout)

Se as mensagens para um colega estiverem demorando exatos 10 segundos para chegar, ou simplesmente não chegam (mesmo aparecendo online), isso indica que a sua rede física está bloqueando ativamente a conexão local. O MB Chat possui um sistema de emergência (Fallback) que redireciona a mensagem via internet por uma Âncora quando a conexão direta é barrada (causando o atraso de 10s).

1. Teste Definitivo de Isolamento (Ping)

Para ter certeza de que sua rede está bloqueando, abra o PowerShell ou Prompt de Comando e faça um Ping para o IP do computador de destino: ping 192.168.0.X

Se o resultado for "Esgotado o tempo limite" (100% de perda) entre dois computadores na mesma casa/escritório, o tráfego P2P está cortado fisicamente e o problema não é no aplicativo.

2. Causas Comuns do Bloqueio

  • Isolamento de AP / Client Isolation (Roteadores): Roteadores de operadora e redes de visitantes vêm com uma trava de segurança que proíbe dois aparelhos da mesma rede de se falarem diretamente. Entre nas configurações do roteador (ex: 192.168.0.1) e desative o Isolamento de LAN ou AP Isolation.
  • Placas Virtuais (VMware, Hyper-V, WSL): Softwares de virtualização criam switches de rede virtuais que podem sequestrar o tráfego da placa de rede. Verifique no ipconfig se há muitos adaptadores virtuais ativos.
  • Perfil de Rede Público: Se a rede estiver como "Pública" no Windows, o Firewall cortará o acesso. Mude para "Privada".
  • Antivírus de Terceiros: Softwares como Kaspersky, Avast ou McAfee ignoram as regras do Windows e bloqueiam a comunicação local proativamente. Marque a rede como "Confiável" no antivírus.
💡 Solução Rápida sem mexer no roteador: Se você não tem acesso ao roteador (ou se a rede é bloqueada de propósito pelo TI), cadastre um Servidor na nuvem ou um computador do Escritório como Peer Manual (Âncora) nas configurações do MB Chat em ambas as pontas. Assim, o chat saberá que a rede local é bloqueada e roteará a mensagem diretamente pela Âncora sem atraso!

Download

MB Chat para Windows

Instalador web: sempre baixa a versão mais recente ao executar. Atalho no Desktop, Menu Iniciar e desinstalador completo.

Baixar Instalador