sgcWebSockets 与 IPWorks 对比
两个产品都为 Delphi 开发者提供 WebSocket 客户端和服务器组件,而且都远不止于 WebSocket。在重叠的部分之外,它们覆盖的领域并不相同。本页逐个协议、逐个平台地说明各自都做什么,每一条说法都取自厂商自己公开的材料,并在“来源”部分给出链接。
两个产品都为 Delphi 开发者提供 WebSocket 客户端和服务器组件,而且都远不止于 WebSocket。在重叠的部分之外,它们覆盖的领域并不相同。本页逐个协议、逐个平台地说明各自都做什么,每一条说法都取自厂商自己公开的材料,并在“来源”部分给出链接。
IPWorks 是一组分别授权的工具包,而不是单一产品。把某个工具包的功能算到另一个头上会让本页失去意义,所以这里点名列出纳入对比的产品,并在每一条依赖它们的表格行里再次点名。
eSeGeCe · 商业授权,含源代码
面向 Delphi 和 C++ Builder 的一套组件,涵盖 WebSocket 客户端与服务器、HTTP 与 HTTP/2、MQTT、AMQP、STOMP、WAMP、Kafka、WebRTC、LLM 与 MCP 客户端,以及第三方 API 集成。以 Standard、Professional 和 Enterprise 版本销售,另有可选的附加扩展包。版本号取自正式发行源码树中的 sgcBase_Const.pas。
/n software · 商业授权
核心工具包,构建号 24.0.9716,发布于 2026 年 8 月 7 日。它公开的组件参考文档记录了 46 个组件,其中包括用于 WebSocket 的 WSClient 和 WSServer,以及 HTTP、REST、GRPC、OAuth、JSON、XML、SOAP、FTP、SMTP、IMAP、POP、LDAP、DNS、XMPP、WebDAV、CalDAV 等等。2026 版本已作为 beta 发布。
/n software · 商业授权,单独销售
消息工具包。它公开的组件参考文档记录了 AMQP、AMQPClassic、AmazonSNS、AmazonSQS、AzureRelayProxy、AzureRelayReceiver、AzureRelaySender、CertMgr、JSON、MQTT、STOMP 和 XMPP。本页凡是比较 MQTT、AMQP 或 STOMP 的地方,指的都是这个工具包。
/n software · 商业授权,单独销售
IoT 工具包。它公开的组件参考文档记录了 AMQP、AMQPClassic、CertMgr、CoAP、JSON、MQTT、MQTTBroker、MQTTSN、STOMP 和 XMPP。内嵌的 MQTT broker 和 CoAP 组件就在这个工具包里。
/n software · 商业授权,单独销售
/n software 将其描述为“一组用于在 LLM 与你的自定义代码、数据和上下文之间进行双向通信的组件”,覆盖基于标准输入输出或基于 HTTP 的 Model Context Protocol,包含工具、资源、提示词和采样。矩阵中 MCP 那一行引用的就是这个工具包。
在此列出,让你知道哪些被排除在外
/n software 还发布 IPWorks SSH、SSL、SFTP、VoIP、IPC、NFS、Encrypt、S/MIME、OpenPGP、Auth、Zip、SNMP、BLE、NFC、EDI、各种 Cloud 工具包、Secure PDF、PDF SDK、3-D Secure、SecureBlackbox 以及企业适配器。本页没有用它们中的任何一个来支撑说法。如果某项能力位于这些工具包而不是上面四个之中,矩阵会在对应行里注明。
本页所有关于 /n software 的事实,都是在 2026 年 9 月 6 日从 nsoftware.com 和 cdn.nsoftware.com 读到的,对应 IPWorks 2024 Delphi Edition,构建号 24.0.9716。所有关于 sgcWebSockets 的事实都在同一天读自 2026.9.0 源码树。两个产品都发布频繁。如果你是在几个月之后读到这里,请点开链接自行核实。
对勾()表示厂商自己的组件参考文档记录了这一点。短横线(—)表示它没有出现在上面“对比范围”一节所点名产品的公开组件参考文档中,这与说它做不到并不是一回事。波浪线(~)表示有文档记录但存在明示的限制,具体限制见该行的说明文字。
| 功能 | sgcWebSockets 2026.9.0 | IPWorks 2024 Delphi Edition |
|---|---|---|
WebSocket 客户端
TsgcWebSocketClient 对比 TipwWSClient,两者都支持 ws 与 wss
|
||
WebSocket 服务器
TsgcWebSocketServer 对比 TipwWSServer。IPWorks 的文档给出默认上限为 1,000 个并发连接,可通过 MaxConnections 设置最多提升到 100,000
|
||
同一端口上的 HTTP 服务器
由同一个终结 WebSocket 的进程提供页面、文件或 REST 路由。sgcWebSockets 提供带 DocumentRoot、会话和 OnCommandGet 的 TsgcWebSocketHTTPServer。IPWorks 把 WSServer 记录为一个 WebSocket 服务器,其 2024 组件参考文档中没有列出 HTTP 服务器组件
|
— | |
per-message-deflate,RFC 7692
sgcWebSockets 提供 Extensions.PerMessage_Deflate,可设置窗口位数、上下文接管和内存级别。IPWorks 在客户端提供 CompressionMethod,在服务器端提供默认开启的 EnablePermessageDeflate 设置
|
||
子协议协商
IPWorks 在客户端接受一个以逗号分隔的 SubProtocols 列表,并在 WebSocketOpenRequest 中把请求的列表交给服务器。sgcWebSockets 通过它的协议组件来协商,这些组件带有一个只读的 Protocol 名称
|
||
Ping 与 Pong 保活
sgcWebSockets 使用 HeartBeat 选项组。IPWorks 在两个组件上都记录了一个 Ping 方法和一个 Ping 事件
|
||
发送消息分片
IPWorks 按 MaxFrameSize 分片,默认 131072 字节,并用 DataIn 的 EOM 参数标记消息是否完整。sgcWebSockets 通过 WriteData 的 aStreaming 参数进行流式发送,并触发 OnFragmented
|
||
客户端自动重连
sgcWebSockets 提供一个 WatchDog,带有 Interval、Attempts、固定或指数式的 Backoff、MaxInterval 和 Jitter。IPWorks 的 WSClient 参考文档没有列出任何重连相关的属性、方法、事件或设置,因此重连要写在应用代码里
|
— | |
TLS 1.3
IPWorks 通过 SSLProvider 在平台 TLS 栈和内部 TLS 栈之间选择,并记录了 TLS 1.3 的密钥组与签名算法。sgcWebSockets 通过 TLSOptions.IOHandler 在 OpenSSL、SChannel、Android TLS 和 Apple TLS 之间选择,TLSOptions.Version 最高到 tls1_3
|
| 功能 | sgcWebSockets 2026.9.0 | IPWorks MQ / IPWorks IoT 2024 |
|---|---|---|
MQTT 3.1.1 与 5.0 客户端
sgcWebSockets:TsgcWSPClient_MQTT,MQTTVersion 取 mqtt311 或 mqtt5。/n software 声明 IPWorks MQ“完全符合 MQTT 3.1.1 和 5.0 版本”
|
||
内嵌 MQTT broker
IPWorks IoT 提供 MQTTBroker,文档称其为“轻量、功能完备、支持 3.1.1 版本的 MQTT broker 实现”,可在明文 TCP、TLS、WebSocket 和安全 WebSocket 上监听。sgcWebSockets 没有 MQTT broker 组件,它的 MQTT 支持在客户端一侧
|
— | |
MQTT-SN
IPWorks IoT 记录了一个 MQTTSN 组件。sgcWebSockets 源码树中没有 MQTT-SN 单元
|
— | |
CoAP
IPWorks IoT 记录了一个 CoAP 组件。sgcWebSockets 源码树中没有 CoAP 单元
|
— | |
AMQP 1.0 与 0.9.1 客户端
sgcWebSockets:1.0 用 TsgcWSPClient_AMQP1,0.9.1 用 TsgcWSPClient_AMQP。/n software 声明“完全支持 AMQP 1.0 和 0.9.1”,并提供 AMQP 和 AMQPClassic
|
||
STOMP 客户端
sgcWebSockets 提供 TsgcWSPClient_STOMP 以及 RabbitMQ 和 ActiveMQ 变体。/n software 声明 IPWorks MQ 支持 STOMP 1.1 和 1.2 版本
|
||
WAMP 客户端与服务器
sgcWebSockets 提供 TsgcWSPClient_WAMP、TsgcWSPClient_WAMP2 和 TsgcWSPServer_WAMP。WAMP 没有出现在 IPWorks MQ 或 IPWorks IoT 的组件参考文档中
|
— | |
Kafka 客户端
sgcWebSockets 提供 TsgcWSPClient_Kafka。Kafka 没有出现在 IPWorks MQ 或 IPWorks IoT 的组件参考文档中
|
— | |
Azure Relay
IPWorks MQ 记录了 AzureRelaySender、AzureRelayReceiver 和 AzureRelayProxy。sgcWebSockets 没有 Azure Relay 组件
|
— | |
Amazon SQS 与 SNS
IPWorks MQ 同时记录了 AmazonSQS 和 AmazonSNS。sgcWebSockets 为 SQS 注册了 TsgcHTTPAWS_SQS_Client,没有 SNS 组件
|
~ | |
托管云 IoT broker
sgcWebSockets 注册了 TsgcIoTAmazon_MQTT_Client 和 TsgcIoTAzure_MQTT_Client,已针对 AWS IoT Core 和 Azure IoT Hub 预先配置。IPWorks IoT 通过通用的 MQTT 组件连接同样的 broker
|
~ |
| 功能 | sgcWebSockets 2026.9.0 | IPWorks 2024 Delphi Edition |
|---|---|---|
HTTP/1.1 客户端
两者都有。IPWorks 记录了 HTTP 组件,支持 cookie、重定向、代理、范围请求和流
|
||
HTTP/2 客户端
IPWorks 接受取值为“2.0”的 HTTPVersion,当服务器不提供时回落到 HTTP/1.1。sgcWebSockets 提供 TsgcHTTP2Client,由 SGC_HTTP2 定义控制
|
||
HTTP/2 服务器
sgcWebSockets 的 HTTP 服务器提供 HTTP2Options,包含各项设置、替代服务通告和线程池。IPWorks 2024 组件参考文档中没有出现 HTTP 服务器组件
|
— | |
HTTP/3 与 QUIC
/n software 记录了取值为“3.0”的 HTTPVersion,并明确说明“HTTP/3 仅在 .NET 和 Java 中受支持”,因此 Delphi 版本用不上。sgcWebSockets 在 sgcQUIC 附加包中提供 TsgcHTTP3Client、TsgcHTTP3Server、TsgcQUICClient 和 TsgcQUICServer
|
— | |
gRPC 客户端
IPWorks 2024 记录了一个 GRPC 组件。sgcWebSockets 注册了 TsgcGRPCClient,由 SGC_GRPC 定义控制
|
||
Server-Sent Events
sgcWebSockets 服务器带有一个 SSE 回退方案 FallBack.ServerSentEvents,供无法完成协议升级的客户端使用。SSE 没有出现在 IPWorks 2024 组件参考文档中
|
— | |
Model Context Protocol
sgcWebSockets 注册了 TsgcWSAPIClient_MCP 和 TsgcWSAPIServer_MCP。/n software 把 MCP 放在一个单独的产品 MCP SDK 2026 Delphi Edition 中,通过标准输入输出或 HTTP 通信
|
||
| LLM 聊天客户端 sgcWebSockets 为 OpenAI、Anthropic、Gemini、DeepSeek、Grok、Mistral 和 Ollama 各提供一个专用客户端,各占一个单元。/n software 的产品目录中没有出现 LLM 聊天客户端,其 AI Integration 分类中是 MCP SDK | — | |
WebRTC、STUN、TURN 与 ICE
sgcWebSockets 注册了 TsgcSTUNClient、TsgcSTUNServer、TsgcTURNClient、TsgcTURNServer、TsgcICEClient 和 TsgcRTCPeerConnection。这些都没有出现在 IPWorks 2024 组件参考文档中
|
— |
| 项目 | sgcWebSockets 2026.9.0 | IPWorks 2024 Delphi Edition |
|---|---|---|
| Delphi 版本 厂商的说明 | Delphi 7 到 Delphi 13 | Delphi 6 到 RAD Studio 13 |
| C++ Builder sgcWebSockets 提供从 C2007 到 C13 的 C++ Builder 包。/n software 单独销售带原生 VCL 的 IPWorks C++ Builder 版本 | ||
Lazarus 与 Free Pascal
sgcWebSockets 提供 sgcWebSocketsLazarus.lpk,并在 sgcVer.inc 中带有 FPC 分支。/n software 在其 Delphi 平台页面上声明“支持 Lazarus IDE 和 Free Pascal”
|
||
| 桌面与服务器目标平台 IPWorks Delphi 版本记录了 Windows 32 位、Windows 64 位、Linux 64 位、macOS 64 位和 macOS ARM 64 位 | ||
从 Delphi 构建 iOS 与 Android
sgcWebSockets 在 sgcVer.inc 中通篇带有 IOS 和 ANDROID 分支,包括面向 Android 的 JNI TLS 处理器和面向 Apple 的 Network.framework 处理器。IPWorks Delphi 版本的平台清单止步于 Windows、Linux 和 macOS。/n software 通过其独立的 Java、macOS、Android 和 iOS 版本来覆盖移动端
|
— | |
需要部署的运行时文件
/n software 声明在 Windows 上“部署时不需要额外文件(无 .dll 依赖)”,而在 Linux 上必须把 libipworks.so.24.0、在 macOS 上必须把 libipworks.24.0.dylib 部署在可执行文件旁边。sgcWebSockets 在每个目标平台上都从 Pascal 源码编译进可执行文件,因此不需要随之部署它自己的任何文件
|
~ | |
| 其他语言中的同一套 API IPWorks 的下载页面列出了十个版本:.NET、Java、C++、macOS、JavaScript、Delphi、C++ Builder、PHP、Python 和 ActiveX/ASP/COM。/n software 的平台菜单还另外列出了 Node.js、Go、Rust、Android、iOS、Swift 和 BizTalk。sgcWebSockets 面向 Delphi 和 C++ Builder 发布,另有一个独立的 C# 移植版 | ~ |
上面矩阵中并非两列都打勾的每一行,都在这里连同背后的依据重新讲一遍。按主题而不是按产品分组,因为大多数项目只关心其中两三点,其余并不在意。
IPWorks IoT 提供 MQTTBroker,/n software 的文档称其为“轻量、功能完备、支持 3.1.1 版本的 MQTT broker 实现”,可在明文 TCP、TLS、WebSocket 和安全 WebSocket 上监听,并带有会话请求、订阅和发布相关的事件。同一个工具包还提供 MQTTSN 和 CoAP。这三样 sgcWebSockets 一个都没有:既没有 MQTT broker 组件,源码树中也找不到 MQTT-SN 或 CoAP 单元。它的 MQTT 支持是一个客户端 TsgcWSPClient_MQTT,可以说 MQTT 3.1.1 或 5.0。
IPWorks MQ 记录了 AzureRelaySender、AzureRelayReceiver 和 AzureRelayProxy,以及 AmazonSQS 和 AmazonSNS 两者。XMPP 同时出现在 IPWorks、IPWorks MQ 和 IPWorks IoT 的组件参考文档中。sgcWebSockets 为 Amazon SQS 注册了 TsgcHTTPAWS_SQS_Client,没有面向 Azure Relay、Amazon SNS 或 XMPP 的组件。
sgcWebSockets 为 WAMP 注册了 TsgcWSPClient_WAMP、TsgcWSPClient_WAMP2 和 TsgcWSPServer_WAMP,为 Kafka 注册了 TsgcWSPClient_Kafka,并提供针对 AWS IoT Core 和 Azure IoT Hub 预配置的 TsgcIoTAmazon_MQTT_Client 和 TsgcIoTAzure_MQTT_Client。WAMP 和 Kafka 都没有出现在 IPWorks MQ 或 IPWorks IoT 的组件参考文档中。两个产品同样都可以通过通用的 MQTT 组件连接托管云 broker。
IPWorks 2024 在一个工具包中记录了 46 个组件,除了那对 WebSocket 组件之外,还纳入了 FTP、SMTP、IMAP、POP、LDAP、DNS、SOAP、OData、WebDAV、CalDAV、SMPP、Telnet、TFTP 和 SysLog。更广的 /n software 产品目录还另有面向 SSH 与 SFTP、SNMP、包含 AS2Sender 和 AS2Receiver 的 EDI、S/MIME、OpenPGP、VoIP、Bluetooth LE 和 NFC 的独立工具包。这些领域 sgcWebSockets 一个都不覆盖。在 WebSocket 之外,它的范围是 HTTP、HTTP/2、gRPC、各种消息协议、云与交易所 API 客户端,以及 P2P 技术栈。
sgcWebSockets 提供 TsgcWebSocketHTTPServer,它在同一个绑定上终结 HTTP 和 WebSocket,提供 DocumentRoot 服务,维护会话,执行 HTTP 压缩,通过 OnCommandGet 暴露路由,并带有一个 HTTP2Options 配置块。围绕它还有防火墙、速率限制器、断路器、API 密钥管理器、代理和负载均衡器,各自都注册为独立的组件。/n software 把 WSServer 记录为一个“用于创建 WebSocket 服务器”的组件,而 IPWorks 2024 组件参考文档中没有列出 HTTP 服务器组件,所以 HTTP 要由技术栈中的其他部分来提供。
sgcWebSockets 在客户端提供一个 WatchDog,带有 Enabled、Interval、Attempts、取 wdbFixed 或 wdbExponential 的 Backoff、BackoffMultiplier、MaxInterval 和 Jitter。IPWorks WSClient 公开的属性、方法、事件和配置清单中没有任何重连设施,因此重连循环要写在应用代码里。两个组件都会触发断开事件,可以据此驱动重连。
IPWorks 的下载页面列出了同一工具包的十个版本:.NET、Java、C++、macOS、JavaScript、Delphi、C++ Builder、PHP、Python 和 ActiveX/ASP/COM,/n software 的平台菜单还另外列出了 Node.js、Go、Rust、Android、iOS、Swift 和 BizTalk。/n software 把这一结果描述为“跨平台、跨技术的统一组件接口”。sgcWebSockets 面向 Delphi 和 C++ Builder 发布,另有一个独立的 C# 移植版,沿用同样的 Tsgc 类名。
/n software 声明支持“Delphi 6 到 RAD Studio 13 之间的所有 Delphi 版本”、“Windows、Linux 和 macOS”,以及“Lazarus IDE 和 Free Pascal”。其 Delphi 版本的文档点名了五个目标平台:Windows 32 位、Windows 64 位、Linux 64 位、macOS 64 位和 macOS ARM 64 位,在 Linux 和 macOS 上需要把 libipworks.so.24.0 或 libipworks.24.0.dylib 部署在可执行文件旁边,在 Windows 上则没有 DLL 依赖。sgcWebSockets 提供从 Delphi 7 到 Delphi 13 的运行时包、从 C2007 到 C13 的 C++ Builder 包,以及一个 Lazarus 包,并在 sgcVer.inc 中贯穿 IOS 和 ANDROID 分支,其中包括 Android 上基于 JNI 的 TLS 处理器和 Apple 平台上的 Network.framework 处理器。它在每个目标平台上都从 Pascal 源码编译进可执行文件。
两者都有 Delphi 的 HTTP/2 客户端:IPWorks 通过取值为“2.0”的 HTTPVersion 实现,并可自动回落到 HTTP/1.1,sgcWebSockets 则通过 TsgcHTTP2Client 实现。再往上两者就分道扬镳了。sgcWebSockets 的 HTTP 服务器提供一个 HTTP2Options 配置块,sgcQUIC 扩展包则加入了 TsgcQUICClient、TsgcQUICServer、TsgcHTTP3Client 和 TsgcHTTP3Server。/n software 记录了取值为“3.0”的 HTTPVersion,并说明“HTTP/3 仅在 .NET 和 Java 中受支持”,因此 Delphi 版本并不具备它。
两者都覆盖 Model Context Protocol:sgcWebSockets 通过 TsgcWSAPIClient_MCP 和 TsgcWSAPIServer_MCP,/n software 则通过独立的 MCP SDK 2026 Delphi Edition,走标准输入输出或 HTTP。在 MCP 之外,sgcWebSockets 还提供面向 OpenAI、Anthropic、Gemini、DeepSeek、Grok、Mistral 和 Ollama 的聊天客户端,以及由 TsgcSTUNClient、TsgcSTUNServer、TsgcTURNClient、TsgcTURNServer、TsgcICEClient 和 TsgcRTCPeerConnection 组成的 WebRTC 技术栈。/n software 公开的产品目录中没有列出 LLM 聊天客户端,也没有 WebRTC 组件。
sgcWebSockets 的源码版本包含完整的 Delphi 和 C++ Builder 源代码,而且工程编译的就是这份源码;Basic 版本则改为提供预编译的 DCU 文件。/n software 为 IPWorks Delphi 版本公开的购买选项只列出一条许可,没有源码选项,其最终用户许可协议声明你同意“不对本软件进行改编、翻译、反向工程、反编译,或以其他方式推导其源代码”。/n software 的 Premium Support 确实包含其所称的“与组件相关的有限源代码分析”。
连接到一个安全的 WebSocket 端点,请求启用压缩,并打印收到的内容。sgcWebSockets 那段代码用的是从正式发行源码树中读到的类、属性和事件。IPWorks 那段代码只使用 IPWorks 2024 Delphi 版本参考文档中印出的名称和签名,并且是在这里写成的,而不是从 /n software 的示例中复制的。
uses
sgcWebSocket, sgcWebSocket_Classes, sgcWebSocket_Types, sgcTCP_Classes;
var
WSClient: TsgcWebSocketClient;
begin
WSClient := TsgcWebSocketClient.Create(nil);
WSClient.URL := 'wss://stream.example.com/feed';
// TLS backend and floor
WSClient.TLSOptions.IOHandler := iohOpenSSL;
WSClient.TLSOptions.Version := tls1_3;
// RFC 7692 compression
WSClient.Extensions.PerMessage_Deflate.Enabled := True;
// Reconnect with exponential backoff and jitter
WSClient.WatchDog.Enabled := True;
WSClient.WatchDog.Interval := 5;
WSClient.WatchDog.Attempts := 0; // keep trying
WSClient.WatchDog.Backoff := wdbExponential;
WSClient.WatchDog.BackoffMultiplier := 2;
WSClient.WatchDog.MaxInterval := 60;
WSClient.OnConnect := WSConnect;
WSClient.OnMessage := WSMessage;
WSClient.Active := True;
end;
procedure TForm1.WSConnect(Connection: TsgcWSConnection);
begin
Connection.WriteData('{"op":"subscribe","channel":"ticker"}');
end;
procedure TForm1.WSMessage(Connection: TsgcWSConnection;
const Text: string);
begin
Memo1.Lines.Add(Text);
end;
// The component is dropped from the IPWorks 2024 palette tab, or the unit is
// added to the uses clause as described on the Supported Platforms page.
begin
ipwWSClient1.URL := 'wss://stream.example.com/feed';
// TLS stack selection. Automatic is the documented default.
ipwWSClient1.SSLProvider := sslpAutomatic;
// RFC 7692 compression, off by default
ipwWSClient1.CompressionMethod := cmtdDeflate;
// Comma-separated, in order of preference; read back after connect
// to learn which one the server chose
ipwWSClient1.SubProtocols := 'ticker';
ipwWSClient1.Connect;
ipwWSClient1.SendText('{"op":"subscribe","channel":"ticker"}');
end;
procedure TForm1.ipwWSClient1DataIn(Sender: TObject; DataFormat: Integer;
const Text: String; const TextB: TBytes;
EOM: Boolean; EOL: Boolean);
begin
Memo1.Lines.Add(Text);
end;
有两处差异值得点明,而不是打分。IPWorks 通过一个带 EOM 标志的 DataIn 事件交付每一条消息,因此除非你设置 BufferMessage,否则不完整的消息也会呈现在你面前;sgcWebSockets 则对文本触发 OnMessage,对二进制触发 OnBinary,对分片触发 OnFragmented。另外 /n software 指出,它的服务器组件期望在服务器启动后循环调用 DoEvents,这会影响控制台或服务宿主的写法。
价格会变。以下是 2026 年 9 月 6 日公布的数字,两家厂商都公开标价,所以做预算之前请再核实一次。
| sgcWebSockets | IPWorks 2024 Delphi Edition | |
|---|---|---|
| 授权单位 | 按开发者计,提供 Single、两人的 Team 和 Site 三种选项,覆盖 Standard、Professional 和 Enterprise 版本。 | 按开发者计。Delphi 版本标注为“单开发者订阅、免版税分发、一年免费升级、许可永久有效”,售价 999 美元。 |
| 多平台套装 | Delphi 与 .NET 产品分别授权。 | Red Carpet Subscription 为一名开发者覆盖全部版本和平台,售价 1,999 美元,含高级支持则为 2,499 美元。四人团队许可为 5,999 美元,含高级支持为 7,999 美元。Site 与企业授权需询价。期限为十二个月。 |
| 只买你需要的部分 | 版本分层,若干能力以独立附加包的形式提供。 | /n software 声明“我们的产品作为工具包的一部分提供,不单独出售”。因此 WebSocket、MQTT 和 CoAP 分处三个不同的工具包。 |
| 源代码 | 源码版本包含完整的 Delphi 和 C++ Builder 源代码,你的工程编译的就是这份源码。Basic 版本提供预编译的 DCU 文件。 | 公开的 Delphi 版本购买选项只列出一条许可,没有源码选项。最终用户许可协议声明你同意“不对本软件进行改编、翻译、反向工程、反编译,或以其他方式推导其源代码”。 |
| 再分发 | 付费许可包含免版税的二进制再分发。 | 在订单表明的范围内免版税:应用可以“无需支付额外费用”地分发,前提是不包含任何修改、以编译后的可执行形式提供,并且不提供与本软件实质相同的功能。 |
| 技术支持 | 许可包含邮件支持,另有可选支持计划,按版本不同承诺工作日四小时、三小时或两小时的响应目标。 | “所有用户均可获得免费邮件支持。问题按先到先答的顺序处理。”Premium Support 是面向 Red Carpet Subscription 客户的付费附加服务,承诺“在一个工作日内”响应,并包含未公开的示例和“与组件相关的有限源代码分析”。 |
| 试用 | 免费的 Trial 版本,无需下单即可下载。 | 功能完整的试用版,自首次使用起授权三十天。 |
取自 sgcVer.inc 中的编译器定义,也就是真正参与编译的东西,而不是来自一张市场宣传表格。
| 版本 | 启用的功能定义 | 在本页中意味着什么 |
|---|---|---|
| Standard | SGC_WS_CLIENT, SGC_PROTOCOLS, SGC_MQTT, SGC_AMQP, SGC_AMQP1, SGC_STOMP, SGC_WAMP, SGC_KAFKA, SGC_IOT, SGC_APIS, SGC_OAUTH, SGC_JWT |
客户端的全部内容,包括上面比较过的所有消息协议。它相当于 IPWorks 加 IPWorks MQ 项目的客户端一侧。 |
| Professional | SGC_WEBSOCKET_SERVER, SGC_REST_SERVER, SGC_FIREWALL, SGC_RATELIMITER, SGC_CIRCUITBREAKER, SGC_APIKEYMANAGER, SGC_SCHANNEL |
WebSocket 与 HTTP 服务器,以及各类边缘组件。SGC_WEBSOCKET_SERVER 位于 SGC_EDT_PRO 区块之内,因此任何服务器端的比较都从这里开始。 |
| Enterprise | SGC_HTTP2, SGC_GRPC, SGC_HTTPAPI, SGC_INDY_IOCP, SGC_INDY_EPOLL, SGC_OPENAI, SGC_ANTHROPIC, SGC_GEMINI, SGC_DEEPSEEK, SGC_GROK, SGC_MISTRAL, SGC_OLLAMA, SGC_AI_MCP, SGC_ICE, SGC_DTLS, SGC_TURN, SGC_RTCPEERCONNECTION, SGC_OAUTH_SERVER, SGC_JWT_SERVER, SGC_WEBAUTHN |
HTTP/2、gRPC、基于 http.sys 以及 IOCP 或 epoll 的高性能服务器、LLM 与 MCP 组件,以及 WebRTC 技术栈。 |
| sgcQUIC 扩展包 | SGC_QUIC, SGC_HTTP3, SGC_WEBTRANSPORT |
QUIC、HTTP/3 和 WebTransport 通过 SGC_PACK_QUIC 区块提供,而不是通过上面三个版本。 |
简短的回答,每一条都可追溯到下面列出的来源。
WSClient 和 WSServer 在核心的 IPWorks 工具包中。MQTT、AMQP 和 STOMP 在 IPWorks MQ 中。CoAP、MQTT-SN 和 MQTT broker 在 IPWorks IoT 中。MCP 在 MCP SDK 中。/n software 还声明其产品按工具包销售,不单独出售组件,因此一个同时需要 WebSocket、MQTT 和 CoAP 的项目需要三个工具包。Red Carpet Subscription 为一名开发者打包整个目录。
WSServer 记录为一个“用于创建 WebSocket 服务器”的组件,带有 WebSocket 打开请求事件、逐连接标识符和 TLS。IPWorks 2024 组件参考文档中没有列出 HTTP 服务器组件,因此页面、静态文件和 REST 路由要由你技术栈中的其他部分来提供。sgcWebSockets 提供 TsgcWebSocketHTTPServer,在一个端口上同时处理两者,并带有 DocumentRoot、会话、HTTP 压缩和一个 HTTP2Options 配置块。
WSServer 实例默认最多处理 1,000 个并发连接,MaxConnections 设置可将其提高到最多 100,000。sgcWebSockets 没有公布对应的上限。它提供一个 MaxConnections 属性、一个线程池,在 Enterprise 版本上还提供 IOCP、epoll 和 http.sys 三种传输方式,你能达到的数量取决于你选了哪一种以及宿主机的情况。请实际压测,而不要直接相信任何一个数字。
WatchDog 属性实现,它公开 Enabled、Interval、Attempts、取 wdbFixed 或 wdbExponential 的 Backoff、BackoffMultiplier、MaxInterval 和 Jitter。IPWorks WSClient 公开的属性、方法、事件和配置清单中没有任何重连设施,因此这段逻辑要由你自己写。两个组件都确实提供了 Disconnected 或 OnDisconnect 事件,可以据此挂接重连。
CompressionMethod,默认值为 cmtdNone,在服务器端提供 EnablePermessageDeflate 设置,默认为 True,并遵从客户端的请求。sgcWebSockets 提供 Extensions.PerMessage_Deflate,包含 Enabled、ClientMaxWindowBits、ServerMaxWindowBits、ClientNoContextTakeOver、ServerNoContextTakeOver 和 MemLevel,因此协商参数由你自己设定。
HTTP 组件接受取值为“3.0”的 HTTPVersion,而同一个页面写明“HTTP/3 仅在 .NET 和 Java 中受支持”,所以 Delphi 版本并不具备它。sgcWebSockets 提供 TsgcHTTP3Client、TsgcHTTP3Server、TsgcQUICClient 和 TsgcQUICServer,不过它们不在三个主要版本里,而是随 sgcQUIC 扩展包提供,通过 sgcVer.inc 中的 SGC_PACK_QUIC 区块启用。HTTP/2 则是另一回事,两个产品都有 Delphi 的 HTTP/2 客户端。
ipw,sgcWebSockets 用 sgc,因此在结构上就不会有命名冲突。一个团队已经为 SFTP 或 EDI 购买了 IPWorks,又想用 sgcWebSockets 的服务器来做实时层,这是很正常的安排,两家厂商都不要求排他性。
所有 /n software 的页面都是在 2026 年 9 月 6 日阅读的。本页引用 /n software 之处,引号中的文字都是他们的原话。关于 sgcWebSockets 的说法都以正式发行的 2026.9.0 源码树为依据,并在对应行中写明单元或定义,方便持有许可的用户自行核对。
IPWorks、IPWorks MQ、IPWorks IoT、MCP SDK、Red Carpet Subscription 和 /n software 是 /n software inc. 的商标,该公司与本页没有任何关系。本页由 eSeGeCe 撰写,而 eSeGeCe 正是所比较的两个产品之一的销售方。这恰恰是上面每一条说法都带链接的原因:对你的决策重要的那几条,请自己去核实。
其他对比。同样方式的对比还有 TMS Software 和 Chilkat,以及涵盖 Indy、ICS 和 mORMot 2 的更广泛综述 Delphi 与 C++ Builder WebSocket 库。如果选库的问题已经定了,你更想看代码,那么 Delphi 使用场景会一页一个任务,把你从空白窗体带到能跑起来的程序。