TsgcWebSocketServer_HTTPAPI

A HTTP Server API permite que aplicações se comuniquem por HTTP sem utilizar o Microsoft Internet Information Server (IIS).

Introdução

A HTTP Server API permite que as aplicações se comuniquem por HTTP sem utilizar o Microsoft Internet Information Server (IIS). As aplicações podem se registrar para receber requisições HTTP de URLs específicas, receber requisições WebSocket e enviar respostas WebSocket. A HTTP Server API inclui suporte a SSL para que as aplicações possam trocar dados por conexões HTTP seguras sem IIS. Ela também foi projetada para trabalhar com I/O completion ports.

 

O servidor suporta os seguintes protocolos:

 

 

Por padrão, este componente requer que sua aplicação seja executada em modo Administrador, para o registro de URL. Se a URL já tiver sido registrada usando uma ferramenta externa como o netsh, você pode executar sem direitos de administrador; desabilite a propriedade BindingOptions.ConfigureSSLCertificate para permitir iniciar a aplicação sem direitos de administrador.

Defina o FastMM4/FastMM5 como a primeira unit do seu projeto.

 

Siga os passos abaixo para configurar este componente:

 

1. Coloque um componente TsgcWebSocketServer_HTTPAPI no formulário

 

2. Defina o endereço e a porta de escuta:

 


    Server.Host := '127.0.0.1';
    Server.Port := 80;

 

3. Defina as Specifications permitidas; por padrão, todas as especificações são permitidas.

 

RFC6455: é a especificação WebSocket padrão e recomendada.

 

Hixie76: é um rascunho e só é recomendado estabelecer conexões Hixie76 se você quiser fornecer suporte a navegadores antigos como o Safari 4.2

 

5. Crie um procedimento e defina a propriedade Active = true

 

URL Reservation

O servidor HTTP.SYS utiliza a reserva de URL para atribuir quais endpoints de URL serão utilizados pelo servidor HTTP.SYS.

 

Reserva Básica de URL

 

Este é o modo mais simples de configurar o Servidor; basicamente você só define o Host e a Port que o servidor HTTP.SYS tratará.

Exemplo: se o seu servidor é executado no IP 127.0.0.1 e na Porta 80, basta definir as seguintes propriedades


    Server.Host := '127.0.0.1';
    Server.Port := 80;

 

Se o servidor for executado em mais de um IP e você quiser fazer bind em múltiplos IPs, utilize o método NewBinding. Primeiro limpe as propriedades Host e Bindings e então utilize o método NewBinding para definir todos os Bindings do Servidor.


    Server.Host := '';
    Server.Bindings.Clear;
    Server.Bindings.NewBinding('127.0.0.1', 80, '');
    Server.Bindings.NewBinding('80.50.55.11', 80, '');

Se o servidor exigir conexões SSL, faça o seguinte para definir o Host e a Port que serão usados para tratar as conexões SSL.


    Server.Host := '127.0.0.1';
    Server.Port := 443;
    Server.SSL := True;
    Server.SSLOptions.Hash := 'CERTIFICATE_HASH';

Se o servidor exigir conexões SSL com múltiplos endereços IP, primeiro limpe as propriedades Host e Bindings e então registre os novos Bindings.


    Server.Host := '';
    Server.Bindings.Clear;
    Server.Bindings.NewBinding('127.0.0.1', 443, '', true, 'CERTIFICATE_HASH1');
    Server.Bindings.NewBinding('80.50.55.11', 443, '', true, 'CERTIFICATE_HASH2');

Referência

Guides