我已经实现了一个简单的appmod,它处理WebSockets并回显消息。但是,我如何处理来自JavaScript客户端的ws.close();
?我曾尝试使用下面的代码,但从未调用handle_message({close, Reason})
,并且ws.onclose = function(evt) {}
从不在JavaScript客户端上执行。如何处理Yaws中客户端的WebSocket关闭?
当我使用相同的JavaScript客户端代码与node.js websocket交互时,客户端在ws.close();
之后立即收到onclose
事件。
这里是我的简单appmod代码:
-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 2012-02-10 19:14:17
使用Chrome 17.0.963.46当调用ws.close()时,我没有看到任何从浏览器到Yaws的“close”消息。我也试过Chrome的16版本,并没有看到它。你使用的是什么浏览器? – 2012-02-10 19:57:05
我使用Chrome 16.相同的客户端代码使用node.js服务器。 – Jonas 2012-02-10 20:13:43