summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroshi Ichikawa <gimite@gmail.com>2011-12-17 21:04:17 +0900
committerHiroshi Ichikawa <gimite@gmail.com>2011-12-17 21:04:17 +0900
commit47c316c59312f137079aa67adae1d8ea6b126cc9 (patch)
tree8cd825490feebf6be60116e71295409cc8b02b79
parentb16e4ce91f938d45aa7a3b0ca89abec39f4c8518 (diff)
downloadweb-socket-js-47c316c59312f137079aa67adae1d8ea6b126cc9.tar.gz
Firing close event on error in send(). Hopefully fixes issue #92 .
-rw-r--r--WebSocketMain.swfbin177103 -> 177119 bytes
-rw-r--r--WebSocketMainInsecure.zipbin170287 -> 170252 bytes
-rw-r--r--flash-src/src/net/gimite/websocket/WebSocket.as12
-rw-r--r--web_socket.js8
4 files changed, 11 insertions, 9 deletions
diff --git a/WebSocketMain.swf b/WebSocketMain.swf
index d14c51c..3307084 100644
--- a/WebSocketMain.swf
+++ b/WebSocketMain.swf
Binary files differ
diff --git a/WebSocketMainInsecure.zip b/WebSocketMainInsecure.zip
index e3f974f..1cc1862 100644
--- a/WebSocketMainInsecure.zip
+++ b/WebSocketMainInsecure.zip
Binary files differ
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;