浏览代码

Fix web-socket-js: encode sent data across FABridge.

Joel Martin 15 年之前
父节点
当前提交
d38406e6b5
共有 2 个文件被更改,包括 3 次插入3 次删除
  1. 2 2
      include/web-socket-js/flash-src/WebSocket.as
  2. 1 1
      include/web-socket-js/web_socket.js

+ 2 - 2
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:

+ 1 - 1
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 {