diff options
author | Hiroshi Ichikawa <gimite@gmail.com> | 2011-12-17 21:04:17 +0900 |
---|---|---|
committer | Hiroshi Ichikawa <gimite@gmail.com> | 2011-12-17 21:04:17 +0900 |
commit | 47c316c59312f137079aa67adae1d8ea6b126cc9 (patch) | |
tree | 8cd825490feebf6be60116e71295409cc8b02b79 | |
parent | b16e4ce91f938d45aa7a3b0ca89abec39f4c8518 (diff) | |
download | web-socket-js-47c316c59312f137079aa67adae1d8ea6b126cc9.tar.gz |
Firing close event on error in send(). Hopefully fixes issue #92 .
-rw-r--r-- | WebSocketMain.swf | bin | 177103 -> 177119 bytes | |||
-rw-r--r-- | WebSocketMainInsecure.zip | bin | 170287 -> 170252 bytes | |||
-rw-r--r-- | flash-src/src/net/gimite/websocket/WebSocket.as | 12 | ||||
-rw-r--r-- | web_socket.js | 8 |
4 files changed, 11 insertions, 9 deletions
diff --git a/WebSocketMain.swf b/WebSocketMain.swf Binary files differindex d14c51c..3307084 100644 --- a/WebSocketMain.swf +++ b/WebSocketMain.swf diff --git a/WebSocketMainInsecure.zip b/WebSocketMainInsecure.zip Binary files differindex e3f974f..1cc1862 100644 --- a/WebSocketMainInsecure.zip +++ b/WebSocketMainInsecure.zip diff --git a/flash-src/src/net/gimite/websocket/WebSocket.as b/flash-src/src/net/gimite/websocket/WebSocket.as index 111b705..4508557 100644 --- a/flash-src/src/net/gimite/websocket/WebSocket.as +++ b/flash-src/src/net/gimite/websocket/WebSocket.as @@ -156,7 +156,6 @@ public class WebSocket extends EventDispatcher { var dataBytes:ByteArray = new ByteArray(); dataBytes.writeUTFBytes(data); if (readyState == OPEN) { - // TODO: binary API support var frame:WebSocketFrame = new WebSocketFrame(); frame.opcode = OPCODE_TEXT; frame.payload = dataBytes; @@ -467,10 +466,13 @@ public class WebSocket extends EventDispatcher { socket.writeBytes(header); socket.writeBytes(maskedPayload); socket.flush(); - } catch (ex:IOError) { - logger.error("IOError while sending frame"); - // TODO Fire close event if it hasn't - readyState = CLOSED; + } catch (ex:Error) { + logger.error("Error while sending frame: " + ex.message); + setTimeout(function():void { + if (readyState != CLOSED) { + close(STATUS_CONNECTION_ERROR); + } + }, 0); return false; } return true; diff --git a/web_socket.js b/web_socket.js index 6b629a6..c92676e 100644 --- a/web_socket.js +++ b/web_socket.js @@ -99,10 +99,10 @@ */ WebSocket.prototype.close = function() { if (this.__createTask) { - clearTimeout(this.__createTask); - this.__createTask = null; - this.readyState = WebSocket.CLOSED; - return; + clearTimeout(this.__createTask); + this.__createTask = null; + this.readyState = WebSocket.CLOSED; + return; } if (this.readyState == WebSocket.CLOSED || this.readyState == WebSocket.CLOSING) { return; |