Executando verificação de segurança...
1

Como faço uma conexão local sem instalar nem configurar nada?

Obs: Com não configurar nada eu quero dizer que quero usar um script que configure coisas como o firewall e outros que preparem o windows para isso.

Estou tentando desenvolver um programa bem simples, um chatroom de LAN. Porém, eu sou desenvolvedor Web Júnior ou até menos se bobear, então eu quero fazer isso como um site que o usuário baixa e roda na própria máquina e então outros usuários na mesma rede local entram pelo ipv4.

Essa descrição não me parece tão difícil porque eu saberia fazer isso usando engines de jogos como Godot ou Unity, só que eu não gostaria de usar essas engines pra fazer esse programa pois quero que ele seja leve e acessível porque minha ideia é desenvolver coisas mais elaboradas usando ele de base.

Tudo que eu preciso realmente é saber jogar um arquivo html em uma porta, assim como php -S localhost:8080 faria, porém sem que o usuário precise baixar o php ou qualquer outro programa pra fazer isso.

Obs.2: Eu tenho pesquisado muito sobre isso mas simplesmente ainda não tenho conhecimento suficiente na área pra achar a resposta sozinho. Já tenho alternativas mas realmente gostaria de fazer desse jeito.

Carregando publicação patrocinada...
2

Bem, não é a minha área mas vamos lá.

Uma linguagem que eu acho legalzinha é Nim. A sintaxe é bem parecida com Python, roda no Linux/Windows/Mac, gera executáveis e também pode gerar .js. Usei um exemplo pronto que não é meu e está no github.

É um exemplo simples e ficou com menos de 70 linhas de código. Gerou um executável de 807K (o que eu considero pequeno para tudo o que ele faz). Basta executá-lo e acessar na porta 5000.

Exemplo rodando em dois navegadores (Firefox e Opera) e em um celular que estava na mesma rede.
image

1

Olá, você ta criando um chat com websocket, certo? caso sim você pode fazer o seguinte:

    // exemplo que usa socket.io
    // https://socket.io/docs/v4/client-api/
    import { io } from "https://cdn.socket.io/4.4.1/socket.io.esm.min.js";
    const input = document.querySelector("#input_ip");
    const button = document.querySelector("#connect");

    function connect() {
      var ip = input.value; // obtenha o ip atráves de um input, como: 192.168.0.1:8080
      const socket = io(ip, { reconnection: false });

      if (socket.connected) return socket;
      else throw "Invalid IP";
    }

    button.onclick = () => {
      const socket = connect();
    
      // determine os listeners!
      socket.on("connect", () => console.log(socket.id + " | connected"));
      socket.on("message", ...);
    }

Ou seja você pode pegar um IP pelo um input tentar conectar e caso conseguir conectar setar os eventos.


Sobre o firewall, em todo servidor local é necessário permitir o app no firewall.
exemplo: um servidor LAN de minecraft, você tem que permitir o Java(TM) Platform SE binary.

Outra coisa é o usuário host tem que estar com um servidor websocket ligado, para fazer que ele não precise de ter o ambiente da linguagem instalada em sua máquina é necessario gerar um arquivo executável de um servidor.

1

Você precisa de um servidor web, os mais utilizados são apache2 ou nginx. Com eles você passa a ter na sua maquina um servidor web e pode começar a servir arquivos e sites. Pro caso de arquivos em php ainda é necessário instalar alguns modulos para que funcione.
De uma procurada sobre Lamp(Linux) e Wamp(Windows), dessa forma vai ficar mais claro.