2016-05-08 14 views
3

サンプルアプリケーションが動作しないようです。私はコンソールに何かを記録する以外に何もしない単純なwebsocket 101スターターアプリを実行しようとしています。cfwebsocketを使い始める

ウェブルートにcfwsディレクトリがあり、C:\inetpub\wwwroot\site\で作業しています。

私が実行しているコードがあるポート8579.

、 "プロキシを使用" オプションを使用して、cfadminにウェブソケットを有効にしている:

index.cfmに:

<html> 
    <head> 
     <title>Example One</title> 
     <script language="javascript"> 
       function messageHandler(msg) { 
        console.log("messageHandler Run"); 
       console.dir(msg); 
       } 
     </script> 
    </head> 
    <body>  
     <h1>Example One</h1>  
    </body> 
</html> 

<cfwebsocket name="myWS" onMessage="messageHandler" subscribeTo="news"> 

Application.cfcの

component { 
    this.name="cfwack2_1"; 
    this.wschannels = [{name:"news"}]; 
} 

私は、コードを実行し、エラーがないが、私はexpecteが表示されませんdコンソールにログインします。

私が試したすべてのサンプルアプリケーションは、これまで5分の8分を費やしていません。どんな助けもありがたい。

+0

ウェブソケットについてはわかりませんが、あなたのjavascriptは怪しいようです。関数messageHandlerは引数を必要としますが、cfwebsocketタグのonMessageイベントはそれを呼び出すことなく呼び出します。 –

答えて

0

あなたはあなたのApplication.cfcにタイプミスがあるかもしれません。 the docs hereによると、それは次のようになります。

component { 
    this.name="cfwack2_1"; 
    this.wschannels=[{name="news"}]; 
} 

代わり:(コロン)の=(等号)をname後。

ドキュメントでは、JavaScript関数がトークン値であるを受け入れる必要があることも示されています。ここにはドキュメントの例があります。

<script type="text/javascript"> 
    function mymessagehandler(aevent, atoken) 
    { 
     var message = ColdFusion.JSON.encode(atoken); 
     var txt=document.getElementById("myDiv"); 
     txt.innerHTML +=message +""; 
    } 
</script> 

<cfwebsocket name="mycfwebsocketobject" onmessage="mymessagehandler" subscribeto="news"> 
<cfdiv id="myDiv"></cfdiv> 
+0

ニースは試してみましたが、違いはありません – user460114

+0

私が参照したドキュメントは、javascript関数がトークン属性を期待していることを示しています。あなたはそれを試しましたか?この例で私の答えを更新します。 –