socket nodejs ejemplo closing javascript websocket blob arraybuffer

javascript - nodejs - ¿Cómo puedo saber el tipo de parámetro de websocket onmessage?



websocket php (2)

"¿Cómo le digo qué tipo de letra quiero?"

El tipo de los datos en un marco websocket está determinado por el remitente (ver 1.2 ) y, por lo tanto, no puede ser establecido por el receptor. Si se envían datos de texto, entonces el tipo de e.data es string . Si se envían datos binarios, entonces e.data será una instancia de ArrayBuffer o Blob , dependiendo del valor de la propiedad ws.binaryType establecida por el receptor.

"¿O cómo sé qué tipo obtengo?"

Esto ya ha sido respondido por pimvdb.

Aquí https://developer.mozilla.org/en/WebSockets/WebSockets_reference/MessageEvent indica que los datos de atributo son de tipo DOMString | Blob | ArrayBuffer. ¿Cómo le digo qué tipo quiero? O ¿cómo puedo saber qué tipo tengo?


Los dos tipos de marcos apropiados que un servidor puede enviar son marcos de texto y marcos binarios ( 5.2 ). ws.binaryType permite definir en qué formato desea obtener los datos binarios.

  • Datos binarios: según el tipo binaryType se establezca en arraybuffer o blob
  • Datos de texto: cadena

Para determinar el tipo, puede utilizar:

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

Reference :

4. Si el tipo indica que los datos son Texto, inicialice el atributo de datos del evento a los datos .

Si el tipo indica que los datos son binarios, y el tipo binaryType está establecido en " blob ", inicialice el atributo de data evento en un nuevo objeto Blob que represente los datos como sus datos sin procesar.

Si el tipo indica que los datos son binarios, y el tipo binaryType se establece en " arraybuffer ", inicialice el atributo de data evento en un nuevo objeto ArrayBuffer solo ArrayBuffer cuyo contenido sea data .