做了個簡單的socket.io服務器,以不斷推送圖片的方式進行“直播”
那么后端是把圖片以jpeg編碼成二進制格式,直接emit
前端該如何顯示? 搞了半天還是半懂不懂的,但是湊合搞定了。
<body> <img id="player" style="width:704px;height:576px"/> </body>
首先,接收到的是個arrayBuffer
關鍵是通過 arrayBuffer -> 轉 base64,
參考
https://blog.csdn.net/weixin_30906425/article/details/99002648
function arrayBufferToBase64(buffer) { var binary = ''; var bytes = new Uint8Array(buffer); var len = bytes.byteLength; for (var i = 0; i < len; i++) { binary += String.fromCharCode(bytes[i]); } return window.btoa(binary); }
然后<img> .src 就可以顯示了
var player = document.getElementById('player'); var url= arrayBufferToBase64(data); player.src='data:image/jpeg;base64,'+url;
