Server-sent Events support

Sending a server-sent is as simple as calling context.sendEvent(eventDetails, interval). Please see the Context object for more details about the sendEvent method.


import { controller, get } from 'kikwit';
@controller
export class StockMarket {     
    @get
    ticker(context) {     
        let lastEventId = context.lastEventId || 0;   
        const randomValue = () => Number.parseFloat((Math.random()*2).toFixed(2)) * (Math.random() < 0.5 ? -1 : 1);
        const eventDetails = { 
            data: { 
                DJIA: randomValue(), 
                Nasdaq: randomValue(), 
                ['S&P 500']: randomValue(), 
                GOLD: randomValue() 
            }, 
            id: ++lastEventId, 
            event: 'tick',
            retry: 5000
        };       
        context.sendEvent(eventDetails, 5000); 
    }      
}

The client call for the above would be something like


var eventSrc = new EventSource('/stockmarket/ticker');
eventSrc.onmessage = function(event) {
    console.log(event.data);
}

results matching ""

    No results matching ""