メッセージ配信システムをコーディングしています。サーバーは、新しい <cfwebsocket> 機能セットを使用する ColdFusion (CF) 10 です。クライアントは Delphi 2009 で作成されます。
(<cfwebsocket> タグを使用して) ColdFusion でクライアントを作成すると、問題なく動作します。2 つのクライアント間でメッセージを送信できます。したがって、サーバー側は機能しているようです。
Delphi クライアントでは、そのような運はありません。これまでに 2 つのコンポーネント ライブラリを試しました ( Delphi on RailsとsgcWebSockets )。どちらも CF サーバーへの接続を確立しているように見えますが、メッセージは送受信されません。正しいアドレスを指定した場合は例外がスローされず、別のポートまたは URI を指定した場合は例外が発生するため、Delphi がサーバーに接続していることはほぼ確実です。
ミッシングリンクは、「チャネル」の理解にあると思います。CF では簡単です。サブスクライブするか、メッセージを送信するチャネルを指定すると、それが機能します。しかし、「チャネル」の概念は、ColdFusion 以外にはあまり存在しないようです。w3.org、Google などを検索しましたが、HTML5 WebSocket 仕様のチャネルについてはあまりわかりません。いくつかの参考文献がありますが、特に例では明確なものはありません。
要約すると、私の質問:
- 「チャネル」は標準の WebSocket API の一部であり、そうであれば、
- 前述の Delphi WebSocket ライブラリの 1 つを使用してチャネルをサブスクライブするにはどうすればよいですか? ws://[server]:[port]/[channel] と同じくらい簡単ではないでしょうか?
- CF サーバーで WebSocket 接続とトラフィックをデバッグする方法は?
どうもありがとう。これは、StackOverflow に関する私の最初の投稿です。少し長い場合は申し訳ありません。