Subj : webv4 add menu items To : Mortifis From : echicken Date : Sun Apr 05 2020 12:42 pm Re: webv4 add menu items By: Mortifis to echicken on Sun Apr 05 2020 03:54:51 Mo> ... been huntin' n' peckin' ... which webv4 file has the function emit(...) Mo> please ? The file root/api/events.ssjs is an HTTP EventSource and has the emit() function in it. The client requests this page and remains connected. Events are streamed to tbe browser as they happen. This was a change I introduced in a move away from having the browser poll the server at intervals for updates (new telegrams, who's online, etc.). The event emitters are in lib/events/. Clients can subscribe to any of the event types in there. An event emitter must expose a 'cycle' function. events.ssjs will call this function during its loop. The 'cycle' function should check for new data to send, and then push it to the client. Pushing an event to the client is a matter of calling 'emit', as in: emit({ event: 'my_event', data: 'some data' }); or: emit({ event: 'an_event', data: { an: 'object' } }); 'data' can be a string or an object. On the client side, there's a function included in (I think) every page called registerEventListener, so you would need to do something like this, client-side, in JS: registerEventListener('my_event', function (e) { const data = JSON.parse(e.data); }); Now whenever the server pushes a 'my_event' to the client, this function will be called. You can do whatever you need to with 'e', which is the object that your event emitter passed to emit(). --- echicken electronic chicken bbs - bbs.electronicchicken.com þ Synchronet þ electronic chicken bbs - bbs.electronicchicken.com .