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
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');