diff options
-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; |