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 enarraybuffer
oblob
- Datos de texto: cadena
Para determinar el tipo, puede utilizar:
-
e.data instanceof ArrayBuffer
-
e.data instanceof Blob
-
typeof e.data === "string"
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 dedata
evento en un nuevo objetoBlob
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 dedata
evento en un nuevo objetoArrayBuffer
soloArrayBuffer
cuyo contenido seadata
.