HTML5-EventSource-listener für alle Ereignisse?
Habe ich von push-Benachrichtigungen in meine JavaScript-client-app mit EventSource.
Ich kann anfügen Ereignis-Listener wie diese:
source.addEventListener('my_custom_event_type', function(e) {
console.log(e.data);
}, false);
Aber ich möchte, um zu beobachten alle Ereignisse, die geschoben werden, von dem server (hauptsächlich für Fehlersuche), so dass, wenn einige Ereignis wird gesendet, aber es hat keine Ereignis-listener habe ich es leicht finden können. Ich meine, ich will nicht einfach "ignorieren" werden alle Ereignisse, die keine eventListeners gebunden.
Ich würde erwarten, dass etwas wie das hier tun:
source.addEventListener('*', function(e) {
console.debug('Event with no listener attached: ', e);
}, false);
Aber die Spezifikation und tutorials wie das an html5rocks nicht angeben, wenn dies möglich ist oder nicht.
In der anderen hand, kann es einige firefox - /chrome-Erweiterung, die es ermöglicht, die zur überwachung aller server-Ereignisse oder so etwas. Diese Dinge würden wirklich helfen, auf die Entwicklung von push-Benachrichtigungen.
Dank!
InformationsquelleAutor tothemario | 2012-03-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich herausfinden, eine Lösung mir, dass verbessert auch ungemein die EventSource-interface.
Server-Seite: senden Sie den event-Typ, fügen Sie einfach ein zusätzliches Datenfeld (die, die ich immer benutze json). Also anstatt
Schicke ich diese vom server statt:
Client-Seite: Jetzt kann ich mit EventSource onmessage callback, der ausgelöst wird, auf jede Nachricht, die nicht über ein Ereignis geben.
Und zum binden von event-Listenern, ich erstelle eine wrapper-Klasse mit Rückgrat.Event-Funktionalität. Das Ergebnis:
Nun mit dieser wrapper-Klasse, kann ich problemlos erweitern die Funktionalität, alle server gesendeten Ereignisse können leicht überwacht werden und Dank der Verlängerung von Rückgrat.Events das event-handling in dieser Klasse ist viel leistungsfähiger.
Beispiel:
Nun habe ich eine Komponente, die einfach zu handhaben, zu verlängern, zu Debuggen und zu testen.
Nur ein fyi: Aufruf
onmessage = some_function;
ist genau das gleiche wie der AufrufaddEventListener("message", some_function);
. Dies macht es offensichtlich, dass die Nachrichten ohne eine event-Typ sind die gleichen wie Nachrichten, die mit einem Ereignis-Typ "Nachricht".Hallo tothemario. Für einige Grund, JSON.parse(event.Daten) funktioniert nicht für mich. Wären Sie so freundlich und geben Sie Ihre server-side-Weise Daten erzeugen: {'mykey': 'myvalue', eventName: 'eventName'} ? Vielen Dank im Voraus.
InformationsquelleAutor tothemario
onmessage
behandelt nur die Ereignisse, ohne die Art developer.mozilla.org/ru/docs/Web/API/EventSourceInformationsquelleAutor gilcierweb
Ich weiß, das ist nicht eine EventSource, aber ich war auf der Suche für die gleiche Sache (ein Weg, um zu fangen alle eingehenden Ereignisse, ohne zu wissen, Ihre Art). Ohne Kontrolle über den server, das senden dieser events, ich landete nur zu schreiben, es mit einem XHR, falls jemand anderes auf diesen:
InformationsquelleAutor Trey