Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     var recvDataQueue = []
  2.     var recvCallbacksQueue = []
  3.  
  4.     var socket = new WebSocket("ws://127.0.0.1:8178/socket/" + path)
  5.     socket.binaryType = 'arraybuffer'
  6.     //var evt = Event('usbread');
  7.  
  8.     socket.onmessage = function(event) {
  9.       var data = new Uint8Array(event.data)
  10.       console.debug("READ: ", data)
  11.       if(recvCallbacksQueue !== 0) {
  12.         recvCallbacksQueue.shift().resolve(data)
  13.         return
  14.       }
  15.       recvDataQueue.push(data)
  16.     }
  17.     socket.onopen = async function (event) {
  18.       await wasm.unlock(api, query)
  19.       await wasm.pair(api, query)
  20.     }
  21.  
  22.     function on_write(bytes) {
  23.       console.debug("WRITE: ", bytes)
  24.       if (socket.readyState == WebSocket.OPEN){
  25.         socket.send(bytes)
  26.       } else {
  27.         console.log("SOCKET NOT OPEN YET!!")
  28.       }
  29.     }
  30.  
  31.     function on_read() {
  32.       if(recvDataQueue.length !== 0) {
  33.         return Promise.resolve(recvDataQueue.shift())
  34.       }
  35.       return new Promise((resolve, reject) => {
  36.         recvCallbacksQueue.push({resolve, reject})
  37.       })
  38.     }
  39.  
  40.     function query(bytes) {
  41.       on_write(bytes)
  42.       return on_read()
  43.     }
  44.   })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement