TsgcWebSocketServer_HTTPAPI

HTTP 服务器 API 使应用程序能够在不使用 Microsoft Internet Information Server(IIS)的情况下通过 HTTP 进行通信。

简介

HTTP 服务器 API 使应用程序无需使用 Microsoft Internet Information Server(IIS)即可通过 HTTP 进行通信。应用程序可注册以接收特定 URL 的 HTTP 请求、接收 WebSocket 请求并发送 WebSocket 响应。HTTP 服务器 API 包含 SSL 支持,使应用程序无需 IIS 即可通过安全 HTTP 连接交换数据,并且还设计为与 I/O 完成端口协同工作。

 

服务器支持以下协议:

 

 

默认情况下,此组件要求您的应用程序以管理员模式运行以进行 URL 注册。如果 URL 已通过 netsh 等外部工具注册,则可以不以管理员权限运行,禁用 BindingOptions.ConfigureSSLCertificate 属性即可无需管理员权限启动应用程序。

将 FastMM4/FastMM5 设置为项目的第一个单元。

 

请按照以下步骤配置此组件:

 

1. 在表单中放置一个 TsgcWebSocketServer_HTTPAPI 组件

 

2. 定义监听地址和端口:

 


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

 

3. 设置允许的规范,默认情况下允许所有规范。

 

RFC6455:是标准且推荐的 WebSocket 规范。

 

Hixie76:这是一个草案版本,建议仅在需要支持 Safari 4.2 等旧版浏览器时才建立 Hixie76 连接。

 

5. 创建一个过程并将属性 Active 设置为 True

 

URL 预留

HTTP.SYS 服务器使用 URL 预留来分配 HTTP.SYS 服务器将使用的 URL 端点。

 

基本 URL 预留

 

这是配置服务器最简单的模式,基本上只需设置 HTTP.SYS 服务器处理的 Host 和 Port 即可。

示例:如果您的服务器运行在 IP 127.0.0.1 和端口 80,只需设置以下属性


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

 

如果服务器运行于多个 IP 上,且您希望绑定到多个 IP,请使用 NewBinding 方法。首先清除 Host 和 Bindings 属性,然后使用 NewBinding 方法定义所有服务器绑定。


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

如果服务器要求 SSL 连接,请执行以下操作以定义用于处理 SSL 连接的 Host 和 Port。


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

如果服务器需要具有多个 IP 地址的 SSL 连接,请先清除 Host 和 Bindings 属性,然后注册新的 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');

参考

指南