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
binaryTypese establezca enarraybufferoblob - 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
binaryTypeestá establecido en "blob", inicialice el atributo dedataevento en un nuevo objetoBlobque represente los datos como sus datos sin procesar.Si el tipo indica que los datos son binarios, y el tipo
binaryTypese establece en "arraybuffer", inicialice el atributo dedataevento en un nuevo objetoArrayBuffersoloArrayBuffercuyo contenido seadata.