Подтвердить что ты не робот

Как указать тип параметра websocket onmessage?

Здесь https://developer.mozilla.org/en/WebSockets/WebSockets_reference/MessageEvent он указывает, что данные атрибута имеют тип DOMString | Blob | ArrayBuffer. Как мне сказать, какой тип я хочу? Или как я узнаю, какой тип я получаю?

4b9b3361

Ответ 1

Соответствующими двумя типами кадров, которые может отправлять сервер, являются текстовые фреймы и двоичные кадры (5.2). ws.binaryType позволяет определить, в каком формате вы хотите получить двоичные данные.

  • Двоичные данные: в зависимости от binaryType устанавливается либо arraybuffer, либо blob
  • Текстовые данные: строка

Чтобы определить тип, вы можете использовать:

  • e.data instanceof ArrayBuffer
  • e.data instanceof Blob
  • typeof e.data === "string"

Ссылка:

4. Если тип указывает, что данные являются Text, тогда инициализируйте атрибут event data для данных.

Если тип указывает, что данные двоичные, а binaryType - "blob", тогда инициализируйте атрибут event data новому объекту blob, который представляет данные в качестве исходных данных.

Если тип указывает, что данные двоичные, а binaryType - "arraybuffer", то инициализируйте атрибут event data новому объекту arraybuffer, доступному только для чтения, содержимое которого data.