WebSocketを処理してメッセージをエコーバックする単純なのアプリケーションを実装しました。しかし、私はどのようにws.close();
をJavaScriptクライアントから処理するのですか?以下のコードで試してみましたが、handle_message({close, Reason})
は呼び出されず、ws.onclose = function(evt) {}
はJavaScriptクライアントでは実行されません。YawsのクライアントからWebSocketを閉じる方法を教えてください。
node.js websocketと対話する同じJavaScriptクライアントコードを使用すると、クライアントはws.close();
の直後にonclose
イベントを受け取ります。
-module(mywebsocket).
-export([handle_message/1]).
handle_message({text, Message}) ->
{reply, {text, <<Message/binary>>}};
handle_message({close, Reason}) ->
io:format("User closed websocket.~n", []),
{close, normal}.
ありがとう、これは参考になりました。私は[私はどのようにYawsを使用してappmodでWebSocketメッセージを処理するに投稿したクライアントコードを使用しますか?](http://stackoverflow.com/questions/9187809/how-to-handle-websocket-messages-in-an-appmod-私はボタンを "切断"しています。 – Jonas
Chromeを使う17.0.963.46 'ws.close()'が呼び出されたときに、ブラウザからYawsへの 'close'メッセージは表示されません。私もChromeのバージョン16を試してみましたが、どちらかと見えませんでした。どのブラウザを使用していますか? –
私はChrome 16を使用しています。同じクライアントコードがnode.jsサーバーで動作しました。 – Jonas