Question by 
               iiiiiiiiiiiiiiiiiiiiiiii · Aug 25, 2015 at 05:22 AM · 
                webglwwwsocket  
              
 
              WebGL/WebSocket has stopped while processing WWW.LoadFromCacheOrDownload
First, apologize my English. My WebGL/WebSocket has stopped while processing WWW.LoadFromCacheOrDownload on Chrome. The Server sent a packet but, client socket can not receive immediately. when WWW download has done, the client receives a number of accumulated packets.
Please, help me!
My Unity version is 5.1.2p3 and, Chrome browser version is 44.0.2403.157 and, here is my websocket.jslib code.
 var LibraryWebSockets = 
 {
     $webSocketInstances: [],
 
     SocketConnect: function(url, callee, onopen, onmessage, onclose, onerror)
     {
         var strURL = Pointer_stringify(url);
         var strCallee = Pointer_stringify(callee);
         var strOnOpen = Pointer_stringify(onopen);
         var strOnMessage = Pointer_stringify(onmessage);
         var strOnClose = Pointer_stringify(onclose);
         var strOnError = Pointer_stringify(onerror);
 
         var socket = 
         {
             socket: new WebSocket(strURL),
             buffer: new Uint8Array(0),
             error: null,
             messages: []
         }
 
         socket.socket.onopen = function(e)
         {
             SendMessage(strCallee, strOnOpen, "");
         };
 
         socket.socket.onmessage = function(e)
         {
             if (e.data instanceof Blob)
             {
                 var reader = new FileReader();
                 reader.addEventListener("loadend", function() 
                 {
                     var array = new Uint8Array(reader.result);
                     socket.messages.push(array);
                     SendMessage(strCallee, strOnMessage, "");
                 });
                 reader.readAsArrayBuffer(e.data);
             }
         };
 
         socket.socket.onclose = function(e)
         {
             if (e.code != 1000)
             {
                 if (e.reason != null && e.reason.length > 0)
                 {
                     socket.error = e.reason;
                 }
                 else
                 {
                     switch (e.code)
                     {
                         case 1001: 
                             socket.error = "Endpoint going away.";
                             break;
                         case 1002: 
                             socket.error = "Protocol error.";
                             break;
                         case 1003: 
                             socket.error = "Unsupported message.";
                             break;
                         case 1005: 
                             socket.error = "No status.";
                             break;
                         case 1006: 
                             socket.error = "Abnormal disconnection.";
                             break;
                         case 1009: 
                             socket.error = "Data frame too large.";
                             break;
                         default:
                             socket.error = "Error " + e.code;
                     }
                 }
             }
 
             SendMessage(strCallee, strOnClose, "");
         };
 
         socket.socket.onerror = function(e)
         {
             socket.error = e.data;
             SendMessage(strCallee, strOnError, "");
         }
 
         var instance = webSocketInstances.push(socket) - 1;
         return instance;
     },
 
     SocketState: function(socketInstance)
     {
         var socket = webSocketInstances[socketInstance];
         return socket.socket.readyState;
     },
 
     SocketError: function(socketInstance, ptr, bufsize)
     {
          var socket = webSocketInstances[socketInstance];
          if (socket.error == null)
              return 0;
 
         var str = socket.error.slice(0, Math.max(0, bufsize - 1));
         writeStringToMemory(str, ptr, false);
         return 1;
     },
 
     SocketSend: function(socketInstance, ptr, length)
     {
         var socket = webSocketInstances[socketInstance];
         socket.socket.send (HEAPU8.buffer.slice(ptr, ptr+length));
     },
 
     SocketRecvLength: function(socketInstance)
     {
         var socket = webSocketInstances[socketInstance];
         if (socket.messages.length == 0)
             return 0;
 
         return socket.messages[0].length;
     },
 
     SocketRecv: function(socketInstance, ptr, length)
     {
         var socket = webSocketInstances[socketInstance];
         if (socket.messages.length == 0)
             return 0;
 
         if (socket.messages[0].length > length)
             return 0;
 
         HEAPU8.set(socket.messages[0], ptr);
         socket.messages = socket.messages.slice(1);
         return 1;
     },
 
     SocketClose: function(socketInstance)
     {
         var socket = webSocketInstances[socketInstance];
         socket.socket.close();
     }
 };
 
 autoAddDeps(LibraryWebSockets, '$webSocketInstances');
 mergeInto(LibraryManager.library, LibraryWebSockets);
 
               Comment
              
 
               
              Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                