From d38406e6b5f4517714f02bc0d0f81eb44e6dc6f7 Mon Sep 17 00:00:00 2001 From: Joel Martin Date: Fri, 28 May 2010 14:10:57 -0500 Subject: [PATCH] Fix web-socket-js: encode sent data across FABridge. --- include/web-socket-js/flash-src/WebSocket.as | 4 ++-- include/web-socket-js/web_socket.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/web-socket-js/flash-src/WebSocket.as b/include/web-socket-js/flash-src/WebSocket.as index 40085c18..df254b52 100644 --- a/include/web-socket-js/flash-src/WebSocket.as +++ b/include/web-socket-js/flash-src/WebSocket.as @@ -104,14 +104,14 @@ public class WebSocket extends EventDispatcher { public function send(data:String):int { if (readyState == OPEN) { socket.writeByte(0x00); - socket.writeUTFBytes(data); + socket.writeUTFBytes(decodeURIComponent(data)); socket.writeByte(0xff); socket.flush(); main.log("sent: " + data); return -1; } else if (readyState == CLOSED) { var bytes:ByteArray = new ByteArray(); - bytes.writeUTFBytes(data); + bytes.writeUTFBytes(decodeURIComponent(data)); bufferedAmount += bytes.length; // not sure whether it should include \x00 and \xff // We use return value to let caller know bufferedAmount because we cannot fire // stateChange event here which causes weird error: diff --git a/include/web-socket-js/web_socket.js b/include/web-socket-js/web_socket.js index 69053a11..d5f2ccce 100755 --- a/include/web-socket-js/web_socket.js +++ b/include/web-socket-js/web_socket.js @@ -86,7 +86,7 @@ if (!this.__flash || this.readyState == WebSocket.CONNECTING) { throw "INVALID_STATE_ERR: Web Socket connection has not been established"; } - var result = this.__flash.send(data); + var result = this.__flash.send(encodeURIComponent(data)); if (result < 0) { // success return true; } else {