1. Como Funciona a Integração da Live
A plataforma NetFluxo Live Streaming foi projetada especificamente para transmissões ao vivo com palco para apresentadores e chat interativo para a plateia. Não é necessário instalar Node.js, WebSockets ou pacotes de streaming no seu servidor:
index.php de apenas 3KB no seu Apache/cPanel é o suficiente para carregar toda a transmissão.
2. Instalação Básica (.ZIP)
Para colocar sua primeira transmissão ao vivo no ar:
- Baixe o pacote: No seu painel Minhas Compras, localize o card com o selo Live Streaming e clique em Baixar Módulo (.ZIP).
-
Extraia os arquivos: Você receberá o arquivo
index.php(palco principal) e owebhook-live.php(card de divulgação em tempo real). -
Envie para sua Hospedagem: No Gerenciador de Arquivos do cPanel (ou via FTP), abra a pasta
public_htmle crie uma pasta, por exemplo:public_html/live/. Envie oindex.phppara dentro dela. -
Acesse pelo navegador:
https://seudominio.com.br/live/
3. Roteamento de Palcos & Salas
Caso tenha contratado mais de um palco ou evento simultâneo no mesmo domínio (ex: palco-principal e palco-vip), você define como a pasta carrega a transmissão:
Entrada Direta
O arquivo conecta diretamente ao palco definido na variável $salaPadraoDestaPasta:
Parâmetro ?sala=
Você pode enviar links personalizados para seus espectadores alternarem entre os palcos pelo mesmo arquivo:
4. Anatomia do index.php (Live Streaming)
Este é o código padrão fornecido no arquivo ZIP gerado para transmissões de Live Streaming:
<?php
/**
* =====================================================================
* NETFLUXO LIVE STREAMING - MÓDULO DE INTEGRAÇÃO NATIVO (MULTI-SALAS)
* =====================================================================
* Domínio Autorizado: seudominio.com.br
* Palco / Sala Criada: Palco Principal (palco-principal)
* Modalidade: EXCLUSIVA
* Documentação Oficial: https://www.netfluxo.com.br/docs/doc-live.php
* =====================================================================
*/
// 1. Mapeamento de Chaves por Sala (Array Associativo)
$apiKeys = array(
'palco-principal' => 'nf_live_fe2b61dbea1047b19459571e8bd41f2d',
'palco-vip' => 'nf_live_a97a71817ec38a7e6911d155539eed1e'
);
$siteIdentifier = 'seudominio.com.br';
// 2. [EDITÁVEL] Integração de Espectadores Logados & Perfil Social
$paramName = ''; // Ex: isset($_SESSION['nome']) ? $_SESSION['nome'] : 'Espectador';$paramUserId = ''; // Ex: isset($_SESSION['user_id']) ?$_SESSION['user_id'] : ('guest_' . uniqid());
$paramUsername = ''; // Ex: isset($_SESSION['usuario']) ? $_SESSION['usuario'] : 'visitante';$paramAvatar = ''; // Ex: isset($_SESSION['avatar']) ?$_SESSION['avatar'] : '';
// 3. [EDITÁVEL] Favicon personalizado da sala
$favIcon = "https://netfluxo.com.br/img/favicon.ico";
// 4. Escolha do Modo de Exibição da Sala:
$salaPadraoDestaPasta = 'palco-principal';
$paramSala = isset($_GET['sala']) ? $_GET['sala'] :$salaPadraoDestaPasta;
$primeiraChave = reset($apiKeys);$fallbackKey = $primeiraChave ? $primeiraChave : 'nf_live_fe2b61dbea1047b19459571e8bd41f2d';
$paramKey = isset($apiKeys[$paramSala]) ?$apiKeys[$paramSala] :$fallbackKey;
$isHttps = (
(isset($_SERVER['HTTPS']) &&$_SERVER['HTTPS'] === 'on') ||
(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&$_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
);
$protocolo =$isHttps ? 'https://' : 'http://';
$uriAtual = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/';$caminhoLimpo = strtok($uriAtual, '?');$hostAtual = isset($_SERVER['HTTP_HOST']) ?$_SERVER['HTTP_HOST'] : 'seudominio.com.br';
$paramAppUrl =$protocolo . $hostAtual .$caminhoLimpo;
// 5. Montagem da URL da Antessala com todos os parâmetros
$antessalaUrl = "https://videochat.netfluxo.com.br/antessala.live.html?" . http_build_query(array(
'key' => $paramKey,
'sala' => $paramSala,
'domain' => $siteIdentifier,
'name' => $paramName,
'user_id' => $paramUserId,
'username' => $paramUsername,
'avatar' => $paramAvatar,
'app_url' => $paramAppUrl
));
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<title>Live Streaming | Meu Site</title>
<link rel="icon" type="image/x-icon" href="<?php echo htmlspecialchars($favIcon, ENT_QUOTES, 'UTF-8'); ?>">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body { width: 100%; height: 100%; height: 100dvh; overflow: hidden; background: #070b14; position: fixed; top: 0; left: 0; }
iframe { position: absolute; top: 0; left: 0; width: 100vw; height: 100%; border: none; display: block; }
</style>
</head>
<body>
<iframe src="<?php echo htmlspecialchars($antessalaUrl, ENT_QUOTES, 'UTF-8'); ?>" allow="camera; microphone; display-capture; autoplay; clipboard-write" allowfullscreen></iframe>
</body>
</html>
5. Integração com Sessão de Usuários Logados
Se o seu portal possui banco de usuários (como WoWonder, WordPress, Laravel ou banco próprio), você pode preencher as variáveis do topo do index.php para que os visitantes entrem no chat da live já autenticados:
https://seudominio.com.br/uploads/lucas.jpg). Se vazio ou quebrado, o chat exibe a inicial do nome estilizada com gradiente.
WebHooks & Cards Embed em Tempo Real (Zero F5)
O Card WebHook de Live Streaming é um componente reativo em tempo real que você pode embutir no portal do seu site parceiro. Ele monitora o palco via antena SSE, alternando automaticamente entre o status AO VIVO (com foto e nome do apresentador) e OFFLINE (com informações da próxima transmissão), sem exigir atualização de página (F5).
Como incluir no seu site (PHP ou HTML)
<!-- OPÇÃO 1: Inclusão direta em páginas PHP -->
<?php include 'webhook-live.php'; ?>
<!-- OPÇÃO 2: Inclusão via IFRAME com auto-ajuste de altura (Recomendada / Zero Conflito) -->
<iframe src="https://videochat.netfluxo.com.br/webhook.live.html?sala=SLUG_DA_SALA&key=SUA_API_KEY"
style="width: 100%; border: none; overflow: hidden; background: transparent;"
scrolling="no" id="netfluxoLiveCardIframe"></iframe>
<script>
// O card da Live notifica a página pai em tempo real quando o tamanho mudar (Offline / Ao Vivo):
window.addEventListener('message', function(event) {
if (event.data && event.data.type === 'netfluxo-live-resize') {
var ifr = document.getElementById('netfluxoLiveCardIframe');
if (ifr) ifr.style.height = event.data.height + 'px';
}
});
</script>
Disparos HTTP de Eventos (Server-to-Server)
HMAC-SHA256
Sempre que um apresentador abrir o palco ou encerrar a transmissão, o servidor NetFluxo envia uma requisição POST para a URL de Webhook cadastrada:
// Validação da Assinatura no seu endpoint receptor (PHP):
$payload = file_get_contents('php://input');
$timestamp = $_SERVER['HTTP_X_NETFLUXO_TIMESTAMP'] ?? '';
$signature = $_SERVER['HTTP_X_NETFLUXO_SIGNATURE'] ?? '';
$secret = 'SUA_API_KEY_OU_WEBHOOK_SECRET';
$esperado = hash_hmac('sha256', "{$timestamp}.{$payload}", $secret);
if (!hash_equals($esperado, $signature)) {
http_response_code(401);
die('Assinatura inválida!');
}
$evento = json_decode($payload, true);
// Evento autenticado com sucesso! Processar no backend...
Você pode alterar cores de fundo, bordas de status, textos e a cor dos botões com pré-visualização em tempo real através do painel.
7. Credenciais Agora.io (Exclusivo Live Privada)
Se você contratou a modalidade Live Exclusiva, sua transmissão é roteada via CDN WebRTC de alta performance da Agora.io, garantindo suporte para milhares de pessoas assistindo sem sobrecarregar sua hospedagem:
Acesse o portal oficial em console.agora.io e crie uma conta gratuita (você ganha 10.000 minutos grátis todos os meses).
No menu lateral esquerdo, vá em Project Management e clique em Create a Project. Dê um nome ao seu projeto de streaming.
Selecione obrigatoriamente a opção: APP ID + APP Certificate (Token Security).
Copie o App ID e revele o App Certificate primário. Acesse o seu painel Minhas Compras no NetFluxo, clique no botão Configurações (Agora.io) do seu card de Live e salve as duas chaves.
8. Perguntas Frequentes (FAQ Live)
Como o apresentador assume o palco para transmitir?
Na antessala da Live (antessala.live.html), existe o botão "Acesso da Apresentação & Moderação". O apresentador digita seu login e senha cadastrados no momento da contratação da sala. Ao autenticar, ele assume o microfone, câmera e compartilhamento de tela, transmitindo para todos os espectadores conectados.
Existe delay entre o que o apresentador fala e o que a plateia ouve?
Não. A tecnologia WebRTC da NetFluxo opera em tempo real com latência inferior a 400 milissegundos. Quando o apresentador faz uma pergunta ao vivo, os espectadores respondem no chat no mesmo instante.
Por que a transmissão exige certificado SSL (HTTPS)?
Os navegadores modernos (Chrome, Safari, Edge e Firefox) bloqueiam o acesso a microfone e câmera em sites sem HTTPS. Certifique-se de que seu domínio possui SSL ativo (o cadeado de segurança).
Como funciona a moderação do chat durante a Live?
Apresentadores e moderadores autenticados podem silenciar usuários, excluir mensagens inconvenientes ou banir espectadores indesejados da transmissão diretamente pela interface da Live, em tempo real.
Como funciona a moderação e o banimento em Salas Compartilhadas?
Nas salas da modalidade Compartilhada, onde múltiplos sites parceiros reúnem suas audiências no mesmo ambiente, cada domínio mantém soberania e autonomia total sobre suas punições.
Se a moderação do Site A aplicar um banimento contra um usuário do Site B:
- O usuário banido continua conseguindo acessar a sala normalmente pelos outros sites parceiros.
- No entanto, ele fica completamente isolado do Site A: não assiste nem ouve o áudio/vídeo transmitido pelo Site A, e suas mensagens no chat não chegam aos usuários do Site A.
- Da mesma forma, os participantes e moderadores do Site A não visualizam, não escutam e não interagem com esse usuário banido.
Essa arquitetura inteligente de cross-domain block garante que nenhum site interfira na operação ou na receita de outros parceiros, assegurando que a sua comunidade veja apenas aquilo que a sua equipe de moderação aprovar.