Tengo una aplicación express, con un servidor conectado a un cliente. Tengo datos del servidor que quiero enviar al cliente y un botón en el cliente que quiero activar una función en el servidor. He implementado con éxito la conexión servidor->cliente a través del siguiente código:
cliente js
const source = new EventSource('/events'); source.addEventListener('message', message => { ... });servidor js
express() ... .get('/events', async function(req, res) { res.set({ 'Cache-Control': 'no-cache', 'Content-Type': 'text/event-stream', 'Connection': 'keep-alive' }); res.flushHeaders(); while (true) { await new Promise(resolve => setTimeout(resolve, 1000)); res.write(`data: some text\n\n`); } }) ...Esto me permite enviar datos al cliente desde el servidor. Sin embargo, también tengo un botón en el cliente al que me gustaría llamar una función en el servidor. Creo que he visto métodos con ajax, pero estoy tratando de evitar eso si es posible. ¿Hay alguna manera de hacer básicamente lo contrario del código anterior, donde puedo activar un evento del servidor desde el cliente (como un evento enviado por el cliente en lugar del evento enviado por el servidor que tengo arriba), sin ajax? Gracias