説明
CFM テンプレートで WebSocket オブジェクトを作成できます。このタグは、WebSocket の JavaScript オブジェクトへの参照をクライアントサイドに作成します。
カテゴリ
履歴
ColdFusion 11:新しい属性 secure が追加されました。
ColdFusion 10: このタグが追加されました。
シンタックス
<cfwebsocket |
属性
属性 |
必須/オプション |
説明 |
---|---|---|
name |
必須 |
WebSocket オブジェクトの名前です。これは、JavaScript オブジェクトへの参照で、WebSocket の JavaScript 関数の呼び出しに使用します。 |
onMessage |
必須 |
WebSocket がサーバーからのメッセージを受信すると呼び出される JavaScript 関数です。これは引数、aEvent をサポートします。 この引数はサーバーから送信される WebSocket イベントです。 |
onOpen |
オプション |
WebSocket が接続を確立したときに呼び出される JavaScript 関数です。 |
onClose |
オプション |
WebSocket が接続を閉じたときに呼び出される JavaScript 関数です。 |
onError |
オプション |
WebSocket 接続でのアクションの実行時にエラーが発生した場合に呼び出される JavaScript 関数です。 |
usecfAuth |
オプション |
true(デフォルト)に設定した場合、ユーザーは WebSocket 接続の認証を行う必要はありません(ただし、ユーザーが既にアプリケーションにログインしている場合)。これはデフォルト値です。 |
subscribeTo |
オプション |
サブスクライブするチャネルのカンマ区切りリストです。Application.cfc で設定されたチャネルのすべてまたは任意のチャネルを指定できます。 |
secure | オプション | true の場合、WebSocket 通信は SSL 経由で行われます。 |
例
次の例では、
- ユーザーは、自動的に stocks チャネルにサブスクライブされます。
- Application.cfc で、このチャネル名を指定しています。
- この例では、デフォルトのチャネルリスナーを使用します。
Index.cfm で、(subscribeTo 属性を使用して)ユーザーが自動的にサブスクライブ可能なチャネルを指定し、さらにメッセージハンドラーを定義します。
Application.cfccomponent
{
this.name="websocketsampleapp1";
this.wschannels=[{name="stocks"}];
}Index.cfm
<script type="text/javascript">
function mymessagehandler(aevent, atoken)
{
var message = ColdFusion.JSON.encode(atoken);
var txt=document.getElementById("myDiv");
txt.innerHTML +=message +"<br>";
}
</script>
<cfwebsocket name="mycfwebsocketobject" onmessage="mymessagehandler" subscribeto="stocks" >
<cfdiv id="myDiv"></cfdiv>このコードでは、mycfwebsocketobject という名前の JavaScript の WebSocket オブジェクトを作成します。サーバーからメッセージが送信されると、mymessagehandler 関数が呼び出されます。cfwebsocket タグで subscribeTo を指定したので、WebSocket オブジェクトにより、ユーザーは自動的に stocks チャネルにサブスクライブされます。