我已經實現了一個簡單的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