<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <tt>Hi all,</tt><tt><br>
    </tt><tt><br>
    </tt><tt>To be a little bit more precise</tt><tt>, you will also
      need to make some J</tt><tt>S 'casting' in your onMessage
      function.</tt><tt><br>
    </tt><tt>For example, I use this code to retrieve GPS data send by a
      libwebsocked-based server in binary form:</tt><tt><br>
    </tt><tt><br>
    </tt><tt>function setupWebSocket() {</tt><tt><br>
    </tt><tt>    websocket = new WebSocket(wsUri, wsProto);</tt><tt><br>
    </tt><tt>    websocket.binaryType = "arraybuffer";</tt><tt><br>
    </tt><tt>    websocket.onerror = function(evt) { onError(evt) };</tt><tt><br>
    </tt><tt>    websocket.onopen = function(evt) { onOpen(evt) };</tt><tt><br>
    </tt><tt>    websocket.onclose = function(evt) { onClose(evt) };</tt><tt><br>
    </tt><tt>    websocket.onmessage = function(evt) { onMessage(evt) };</tt><tt><br>
    </tt><tt>}</tt><tt><br>
    </tt><tt><br>
    </tt><tt>/*<br>
      Process messages received from the WS Server.<br>
      They contain LOCINFO structures, in binary form:<br>
----------------------------------------------------------------------------<br>
      // Time structure. We actually use a Windows SYSTEMTIME
      equivalent.<br>
      typedef struct {<br>
          unsigned short wYear;<br>
          unsigned short wMonth;<br>
          unsigned short wDayOfWeek;<br>
          unsigned short wDay;<br>
          unsigned short wHour;<br>
          unsigned short wMinute;<br>
          unsigned short wSecond;<br>
          unsigned short wMilliseconds;<br>
      } LOCTIME;<br>
      <br>
      // Location information.<br>
      typedef struct {<br>
          unsigned char bLevel;    // 00: level of information available<br>
          unsigned char bQuality;  // 01: GPS quality indicator<br>
          unsigned char bNavMode;  // 02: Operating mode, used for
      navigation (1 = Fix not available; 2 = 2D; 3 = 3D)<br>
          unsigned char bRes;      // 03: reserved<br>
          LOCTIME       utc;       // 04: UTC of position<br>
          float         PDOP;      // 20: Position Dilution Of Precision<br>
          .<br>
          .<br>
          .<br>
      } LOCINFO, *PLOCINFO;<br>
      */<br>
      function onMessage(evt) {<br>
          var gd = {};                    // data structure built from
      the binary message<br>
          <br>
          console.log("MESSAGE: " + evt.data.byteLength + " bytes");<br>
          <br>
          // Extract incoming LOCINFO fields into our gd object.<br>
          // Every field in a LOCINFO uses little-endian convention.<br>
          var dv = new DataView(evt.data);<br>
      <br>
          // Level of information, fix quality and mode.<br>
          gd.level =   dv.getUint8(0);<br>
          gd.quality = dv.getUint8(1);<br>
          gd.navMode = dv.getUint8(2);<br>
          <br>
          // Date and time.<br>
          gd.utc = {};                    // UTC of position<br>
          gd.utc.year =         dv.getUint16( 4, true);<br>
          gd.utc.month =        dv.getUint16( 6, true);<br>
          gd.utc.dayOfWeek =    dv.getUint16( 8, true);<br>
          gd.utc.day =          dv.getUint16(10, true);<br>
          gd.utc.hour =         dv.getUint16(12, true);<br>
          gd.utc.minute =       dv.getUint16(14, true);<br>
          gd.utc.second =       dv.getUint16(16, true);<br>
          gd.utc.milliseconds = dv.getUint16(18, true);<br>
      <br>
          // Precision.<br>
          gd.pdop = dv.getFloat32(20, true);        // Position Dilution
      Of Precision<br>
          .<br>
          .<br>
          processGpsData(gd);<br>
      }<br>
      <br>
      You have to be precise about the offset and the byte-sex of the
      structure you receive but there is nothing really difficult here.<br>
      <br>
      HTH<br>
      Remi<br>
       <br>
    </tt>
    <div class="moz-cite-prefix">Le 11/07/2016 à 17:43,
      <a class="moz-txt-link-abbreviated" href="mailto:libwebsockets-request@ml.libwebsockets.org">libwebsockets-request@ml.libwebsockets.org</a> a écrit :<br>
    </div>
    <blockquote
      cite="mid:mailman.58.1468251822.672.libwebsockets@ml.libwebsockets.org"
      type="cite">
      <pre wrap="">Hi Suman

If you want to access the actual bytes of binary messages in your 
javascript, you need to tell it to convert the blob into an ArrayBuffer, 
like so:

     var ws = new WebSocket(<a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="ws://....">"ws://...."</a>);
     ws.binaryType = 'arraybuffer';

hth
Rob

On 11/07/16 10:52, Suman.Patro-TRN wrote:
</pre>
      <blockquote qctoggled="true" type="cite" style="color: #000000;">
        <pre wrap=""><span class="moz-txt-citetags">></span>
<span class="moz-txt-citetags">> </span>Hello ,
<span class="moz-txt-citetags">></span>
<span class="moz-txt-citetags">> </span>            I would like to use LWS_WRITE_BINARYin lws_write in the 
<span class="moz-txt-citetags">> </span>webserver and get data in the javascript client . I use websockets 
<span class="moz-txt-citetags">> </span>connection in the javascript client. When I tried the above scenario, 
<span class="moz-txt-citetags">> </span>I get [object blob] on the html page. Do I need to take some 
<span class="moz-txt-citetags">> </span>additional efforts at the javascript client or is this the javascript  
<span class="moz-txt-citetags">> </span>issue? Is it true that javascript client does not understand byte? if 
<span class="moz-txt-citetags">> </span>javascript does not understand byte, then should Xmlhttprequest is to 
<span class="moz-txt-citetags">> </span>be used? but as per my knowledge xmlhttprequest is used with long 
<span class="moz-txt-citetags">> </span>polling technique and not websockets.Are my understanding on this 
<span class="moz-txt-citetags">> </span>topic correct?
<span class="moz-txt-citetags">></span>
<span class="moz-txt-citetags">> </span>Thanks and regards,
<span class="moz-txt-citetags">></span>
<span class="moz-txt-citetags">> </span>Suman
<span class="moz-txt-citetags">></span></pre>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>