JavaScript WebSocket.binaryType — формат двійкових повідомлень
Властивість binaryType каже, у якому вигляді приходять двійкові повідомлення: 'blob' (за замовчуванням) чи 'arraybuffer'.
Загальний опис
Різниця практична. 'blob' зручний, коли дані треба показати чи зберегти — картинку одразу можна віддати в src.
'arraybuffer' потрібен, коли дані треба розібрати по байтах: власний двійковий протокол, звук, координати. Читати Blob для цього довелось би асинхронно — зайвий крок.
Задавати треба до того, як прийде перше повідомлення — інакше воно приїде в старому форматі.
автор: NagarD
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| binaryType | 16+ | 11+ | 7+ | 12.1+ | 12+ | 10+ |
| Переглядач | ||||
|---|---|---|---|---|
| binaryType | 4.4+ | yes | yes | 6+ |
Приклади
+ запропонувати свій приклад у пісочниці
Розбір власного двійкового протоколу.
const socket = new WebSocket('wss://example.com/stream');
// байти, а не Blob — щоб одразу розбирати
socket.binaryType = 'arraybuffer';
socket.onmessage = event => {
if (typeof event.data === 'string') {
console.log('Текст:', JSON.parse(event.data));
return;
}
// свій двійковий протокол
const view = new DataView(event.data);
console.log('Тип пакета:', view.getUint8(0));
console.log('Значення:', view.getFloat32(1));
};
Коментарі
Коментарів ще немає — будьте першим!