> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transmissão de gráficos nativos usando VNC

> O Replit oferece funcionalidade de computação em rede virtual (VNC). O VNC é um protocolo de desktop virtual maduro que permite que seu App no Replit transmita um desktop nativo para o seu navegador. Esse protocolo permite que aplicativos nativos (desenvolvidos em Python, Java, C++, etc.) abram janelas de desktop como fariam em qualquer computador físico.

Essa tecnologia de transmissão permite que você trabalhe com aplicativos legados no seu navegador a partir de qualquer dispositivo! Por exemplo, você pode executar um jogo em Python projetado para desktop diretamente no seu celular ou tablet sem fazer nenhuma alteração no código subjacente.

<a href="https://replit.com/@demcrepl/Tetris-in-Pygame" target="_blank">Tetris (desenvolvido com PyGame)</a>

<img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/vnc/tetris.png?fit=max&auto=format&n=0ixNWaRF232g0Gwn&q=85&s=ddf138f52d698a6baa7532ad74e88492" alt="imagem do Tetris em um App do Replit" width="2055" height="1057" data-path="images/vnc/tetris.png" />

## Como posso usar o VNC?

Qualquer App do Replit — em qualquer linguagem — pode usar um desktop virtual. Nenhuma alteração é necessária para executar programas de gráficos nativos no Replit. O painel VNC aparecerá quando qualquer aplicativo tentar abrir uma janela de desktop nativa.

## Protegendo seu App no Replit

Por padrão, sua conexão VNC não tem senha e só pode ser acessada em [https://replit.com](https://replit.com), pois a conexão depende da mesma autenticação usada para o WebSocket. Se você precisar acessar seu App no Replit pelo cliente externo [noVNC](https://novnc.com), pode definir uma senha VNC.

Defina uma senha na configuração de [secrets](/core-concepts/project-editor/app-setup/secrets) do seu App no Replit. `Secrets` é um lugar seguro para armazenar senhas sem o risco de outros usuários acessarem suas senhas. Definir `VNC_PASSWORD` adicionará segurança aprimorada ao conectar remotamente.

## Como posso usar o VNC em tela cheia?

Você deve ter protegido seu App no Replit conforme as instruções acima para prosseguir com estas etapas.

1. Execute o seguinte comando na aba "Shell":
   ```sh theme={null}
   echo $REPL_ID
   ```

<Frame>
  <img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/vnc/replid.png?fit=max&auto=format&n=0ixNWaRF232g0Gwn&q=85&s=45fcde093041183e77ba334b780e69ed" alt="imagem mostrando o comando echo" width="628" height="174" data-path="images/vnc/replid.png" />
</Frame>

2. Construa sua URL de conexão substituindo `REPL_ID` pela saída do comando acima: `<\REPL_ID\>.id.repl.co`
3. Abra o [cliente noVNC](https://novnc.com/noVNC/vnc.html) em uma aba separada do navegador.
4. Abra as configurações de conexão.

<Frame>
  <img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/vnc/settings.png?fit=max&auto=format&n=0ixNWaRF232g0Gwn&q=85&s=1f46fa987102bf1bb95ea027d6b3f43d" alt="abrir configurações de conexão" width="126" height="302" data-path="images/vnc/settings.png" />
</Frame>

5. Expanda o campo WebSockets. Insira sua URL de conexão (`\<REPL_ID\>.id.repl.co`) no campo `host` e deixe o campo `path` vazio.

<Frame>
  <img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/vnc/host.png?fit=max&auto=format&n=0ixNWaRF232g0Gwn&q=85&s=e1a6420a7573bb6f0e7a327ecd89b60d" alt="host" width="214" height="230" data-path="images/vnc/host.png" />
</Frame>

6. Altere o `Scaling Mode` para `Remote Resizing`:

<Frame>
  <img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/vnc/scaling.png?fit=max&auto=format&n=0ixNWaRF232g0Gwn&q=85&s=cc7bcd3ec3d8c5cf801d537eef6a2b16" alt="escalonamento" width="147" height="74" data-path="images/vnc/scaling.png" />
</Frame>

7. Use o nome de usuário `runner` e a senha configurada acima quando solicitado as credenciais.

## Exemplos

* <a href="https://replit.com/@demcrepl/Tetris-in-Pygame" target="_blank">PyGame</a>
* <a href="https://replit.com/@amasad-matplotlib" target="_blank">Python matplotlib</a>
* <a href="https://replit.com/@sigcse2021/Game-of-Life-demcrepl" target="_blank">Java Processing</a>
