Estoy tratando de consumir la respuesta sse en javascript. Onopen y onerror funcionan bien, pero onmessage no.
var conn = new EventSource(`${config.serverHost}/log/stream/${this.streamId}`) conn.onopen = (evt) => { console.log('connected to ' + logSourceId) } conn.onmessage = (evt) => { console.log(evt) } conn.onerror = (evt) => { console.error(evt) }La conexión se establece correctamente y los eventos recibidos se pueden encontrar en Chrome Network Recording como se muestra en la siguiente imagen. ¡Pero onmessage nunca se activa!
Cualquier comentario será apreciado.
Parece que estás usando eventos con nombre (algo parecido a "log streami..." ).
Para admitirlos, debe usar el formato addEventListener .
// assuming the event name is "log streaming" conn.addEventListener("log streaming", e => { console.log("log streaming", e) }) FYI, onmessage es para cualquier evento sin nombre, también conocido como flujo de eventos sin una propiedad de event .
evento
Una cadena que identifica el tipo de evento descrito. Si se especifica esto, se enviará un evento en el navegador al oyente para el nombre de evento especificado; el código fuente del sitio web debe usar
addEventListener()para escuchar eventos con nombre. Se llama al controladoronmessagesi no se especifica ningún nombre de evento para un mensaje.