websocket怎么發(fā)送二進(jìn)制數(shù)據(jù)

小億
565
2023-12-04 15:06:54
欄目: 編程語言

要發(fā)送二進(jìn)制數(shù)據(jù),您可以使用WebSocket的send()方法,并將傳遞一個(gè)ArrayBuffer對(duì)象作為參數(shù)。以下是一個(gè)示例:

// 創(chuàng)建WebSocket連接
const socket = new WebSocket('ws://localhost:8080');

// 當(dāng)連接打開時(shí)發(fā)送二進(jìn)制數(shù)據(jù)
socket.onopen = function() {
  const buffer = new ArrayBuffer(8);
  const view = new Uint8Array(buffer);
  view[0] = 1;
  view[1] = 2;
  view[2] = 3;
  socket.send(buffer);
};

// 當(dāng)接收到消息時(shí)處理二進(jìn)制數(shù)據(jù)
socket.onmessage = function(event) {
  const buffer = event.data; // 接收到的二進(jìn)制數(shù)據(jù)
  const view = new Uint8Array(buffer);
  console.log(view);
};

在這個(gè)例子中,我們創(chuàng)建了一個(gè)WebSocket連接,當(dāng)連接打開時(shí),我們創(chuàng)建了一個(gè)8字節(jié)的ArrayBuffer對(duì)象,并將一些數(shù)據(jù)寫入到ArrayBuffer中。然后,我們使用WebSocket的send()方法發(fā)送ArrayBuffer對(duì)象。

當(dāng)接收到消息時(shí),我們獲取到的數(shù)據(jù)是一個(gè)ArrayBuffer對(duì)象,我們可以將其轉(zhuǎn)換為Uint8Array來處理其中的二進(jìn)制數(shù)據(jù)。

請(qǐng)注意,發(fā)送和接收的二進(jìn)制數(shù)據(jù)格式需要相互協(xié)調(diào),以便正確解析數(shù)據(jù)。

0