Delphi 向け WebSocket ライブラリの選び方 — 2026 年バイヤーズガイド

· レビュー

このガイドが存在する理由

WebSocket はもはやニッチなトランスポートではありません。トレーディングダッシュボード、チャットバックエンド、マルチプレイヤーゲーム、IoT 制御プレーン、AI ストリーミング応答、ブラウザベースの管理コンソール — ほぼすべてのモダンなインタラクティブアプリケーションは、少なくとも 1 つの WebSocket を開きます。2026 年に 「どのライブラリを使うべきか?」 と問う Delphi 開発者が直面する選択肢は、思ったほど多くありません: 古典的な Delphi ネットワーキングパッケージのすべてが RFC 6455 に追いついたわけではなく、追いついたものの中には非常に特定のニッチを狙うものもあります。

本ガイドは、2026 年時点の現実的な選択肢 — sgcWebSockets、Indy、TMS FNC WX、mORMot、Synapse — を概観し、最後に判断マトリックスを示します。主張がベンダーの現行リリースに依存する場合、本稿は執筆時点の状況を記述します。コミットする前に、必ずベンダーの最新チェンジログで詳細を確認してください。

候補

sgcWebSockets(eSeGeCe)

WebSocket と広範なモダンプロトコルファミリー(HTTP/2、HTTP/3、MQTT、AMQP、STOMP、SSE、WAMP、WebRTC、IoT、AI API)に焦点を当てた商用ライブラリ。完全な RFC 6455、per-message deflate、サブプロトコル、チャネル、ブロードキャストヘルパー、WatchDog 自動再接続、IOCP サーバースケーリング、JavaScript クライアントミラー、.NET ポート。非商用利用向けの Free Edition と 4 つの有償エディション。Delphi 7 から 13、加えて C++Builder と .NET。

Indy(標準)

Delphi 同梱の標準 Indy にはネイティブな WebSocket クライアントもサーバーも含まれません。いくつかのコミュニティアドオンが存在しますが(GitHub で「Indy WebSocket」を検索)、執筆時点で公式 IndyProject 配布の一部ではありません。Indy の上に直接 WebSocket を構築すると、本質的にフレーマー自体を自分で書くことになります。無料、IDE 同梱。

TMS FNC WX(旧 TMS WEB Core / FNC WebSocket)

TMS Software は FNC ファミリーの一部としてクロスフレームワーク WebSocket コンポーネントを出荷しています(TTMSFNCWebSocketClient とサーバー側は TMS XData / TMS Sparkle 経由)。VCL、FMX、LCL、TMS WEB Core で動作します。クライアント側は堅実、サーバー側は主にこれらの製品の機能として TMS XData / Sparkle スタック経由で提供されます。商用、開発者単位のサブスクリプション価格。Delphi 10.x 以降。

mORMot 2

Synopse(Arnaud Bouchez)によるオープンソースフルスタックフレームワーク。SOA/ORM/REST インフラと密接に統合された WebSocket クライアントとサーバーを含みます。mORMot の WebSocket は成熟しており高速で、バイナリフレーミングと per-message deflate をサポートし、大規模サービスで広く本番運用されています。トレードオフは mORMot が思想的であること — WebSocket 層だけを使うことは可能ですが、より広いフレームワークを採用したときに自然な適合となります。オープンソース(MPL/GPL/LGPL トライライセンス)、Delphi 7 以降、加えて FreePascal。

Synapse

古典的なオープンソース Pascal ネットワーキングライブラリ。執筆時点で、標準の Synapse は WebSocket 実装を含みません。Synapse の上に構築されたサードパーティ WebSocket 層はいくつか存在しますが、保守されていないか単一作者のプロジェクトです。無料。

機能マトリックス

機能 sgcWebSockets Indy(標準) TMS FNC WX mORMot 2 Synapse
WebSocket クライアントありなしありありなし
WebSocket サーバーありなしTMS XData/Sparkle 経由ありなし
RFC 6455(フレーム、マスキング、制御フレーム)ありn/aありありn/a
per-message deflate(RFC 7692)ありn/a部分的ありn/a
サブプロトコル/チャネル/ブロードキャストあり、組み込みn/a手動手動n/a
自動再接続/WatchDogありn/a手動手動n/a
TLS 上 WebSocket(wss://)あり(OpenSSL、SChannel、BoringSSL)n/aありありn/a
WebSocket-MQTT / STOMP / WAMP サブプロトコルありn/aなし限定的n/a
HTTP/2、HTTP/3ありなしなし限定的なし
IOCP / epoll サーバースケーリングあり(Windows IOCP、Linux epoll)接続ごとスレッドホストサーバー依存ありn/a
JavaScript クライアントミラーあり(JS ライブラリ同梱)n/aあり(TMS WEB Core 統合)手動n/a
.NET ポートあり(同一 API)n/aなしなしn/a
Delphi バージョンD7 - D13D7 - D13D10.x - D13D7 - D13、FPCD7 - D13、FPC
ライセンス商用(Free Edition あり)無料、MIT 系商用オープンソーストライライセンス無料
ベンダーサポート有償エディションに含まれるコミュニティ(IndyProject)サブスクリプションに含まれるSynopse 経由の商用サポートコミュニティ/単一作者
活発な保守月次リリース遅いが安定定期的非常に活発遅い

シナリオ別の選択

シナリオ 1: サードパーティ WebSocket API に接続する VCL デスクトップアプリ

wss:// に接続し、JSON を送信し、JSON を受信し、切断時に再接続し、TLS を処理するクライアントが必要です。最短経路は sgcWebSockets(コンポーネントをドロップし、URL を設定し、WatchDog.Attempts を設定し、完了)か、すでに FNC パックをライセンスしている場合は TMS FNC WX です。Indy と Synapse はフレーマーを自分で書く必要があり、RFC 6455 のエッジケースを正しく扱うには多くの作業が必要です。

シナリオ 2: 数百のクライアント向け WebSocket サーバー構築

同一ポートで HTTP と WebSocket を提供し、チャネルとブロードキャストを備えたスタンドアロンサーバーコンポーネントが欲しいなら、sgcWebSockets が自然な選択です。すでに mORMot フレームワーク内で SOA/REST サービスを構築しているなら mORMot 2 が自然な選択 — その WebSocket 層はスタックの残りと統合され、大規模で実戦試験済みです。

シナリオ 3: 数万の同時接続

sgcWebSockets(Windows で IOCP、Linux で epoll)と mORMot 2 の両方が、その規模で本番デプロイされています。標準 Indy の接続ごとスレッドモデルは、相当のアーキテクチャ作業なしには追いつきにくいでしょう。TMS FNC WX のスケーリングは選択したホストサーバー(XData/Sparkle)に依存します。

シナリオ 4: Pascal フルスタックフレームワーク内の WebSocket(REST、ORM、SOA)

mORMot 2。mORMot の用途そのものです。WebSocket 層だけを単独で採用することは可能ですが、より広いフレームワークを受け入れたときに最も価値が出ます。

シナリオ 5: クロスフレームワーククライアント(VCL、FMX、LCL、TMS WEB Core)

TMS FNC WX はまさにそのケース向けに設計されています — 4 つすべてで 1 つの API。sgcWebSockets は VCL、FMX、C++Builder に加えて .NET ポートをカバーしますが、Lazarus/FPC は対象外です。

シナリオ 6: WebSocket に加え MQTT、AMQP、WebRTC、HTTP/2、AI API が必要

本比較で上記すべてを単一製品と単一コンポーネントモデルで出荷する唯一のライブラリは sgcWebSockets です。プロジェクトが「ただの WebSocket クライアント」から「フルなリアルタイムスタック」への軌道にあるなら、早期の統合は後で複数ライブラリを貼り合わせるよりも通常安価です。

シナリオ 7: 予算が厳しい、オープンソースのみ、趣味プロジェクト

mORMot 2(オープンソース)は無料で本格的な WebSocket 実装を提供します。sgcWebSockets の Free Edition は非商用利用の選択肢です。コミュニティ WebSocket アドオン付きの Indy は技術的には可能ですが、関連 RFC を自分で読むことになると思ってください。

判断マトリックス

最重視するもの推奨
動くクライアントまでの最短時間 + ベンダーサポートsgcWebSockets
オープンソースフルスタックフレームワークmORMot 2
クロスフレームワーク(VCL/FMX/LCL/WEB Core)TMS FNC WX
商用の最大同時接続数sgcWebSockets
オープンソースの最大同時接続数mORMot 2
WebSocket + MQTT + HTTP/2 + WebRTC + AI を 1 製品でsgcWebSockets
無料/コミットなしの趣味プロジェクトmORMot 2 または sgcWebSockets Free Edition
すでに TMS XData / Sparkle プロジェクト内TMS FNC WX
すでに mORMot プロジェクト内mORMot 2

コミット前のチェックリスト

まとめ

2026 年の Delphi WebSocket 風景は、最初に見えるよりも健全です。クイックなクライアントなら、sgcWebSockets で数分で動かせます。オープンソースフルスタックプロジェクトなら、mORMot 2 を打ち負かすのは困難です。クロスフレームワーク GUI クライアントなら、TMS FNC WX は自然な適合です。標準 Indy と Synapse は古典的インターネットプロトコルとして引き続き価値がありますが、WebSocket を所有していません。正しい選択は、プロジェクトが「単一エンドポイント」から「完全なリアルタイムプラットフォーム」までのスペクトル上のどこにいるかに依存します — 今日の要件と、2 年後にプロジェクトがどこにあると予想するかの両方に合うライブラリを選びましょう。