| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>ntfy.sh: EventSource Example</title>
- <style>
- body { font-size: 1.2em; line-height: 130%; }
- #events { font-family: monospace; }
- </style>
- </head>
- <body>
- <h1>ntfy.sh: EventSource Example</h1>
- <p>
- This is an example showing how to use <a href="https://ntfy.sh">ntfy.sh</a> with
- <a href="https://developer.mozilla.org/en-US/docs/Web/API/EventSource">EventSource</a>.<br/>
- </p>
- <button id="publishButton">Send test notification</button>
- <p><b>Log:</b></p>
- <div id="events"></div>
- <script type="text/javascript">
- const publishURL = `https://ntfy.sh/example`;
- const subscribeURL = `https://ntfy.sh/example/sse`;
- const events = document.getElementById('events');
- const eventSource = new EventSource(subscribeURL);
- // Publish button
- document.getElementById("publishButton").onclick = () => {
- fetch(publishURL, {
- method: 'POST', // works with PUT as well, though that sends an OPTIONS request too!
- body: `It is ${new Date().toString()}. This is a test.`
- })
- };
- // Incoming events
- eventSource.onopen = () => {
- let event = document.createElement('div');
- event.innerHTML = `EventSource connected to ${subscribeURL}`;
- events.appendChild(event);
- };
- eventSource.onerror = (e) => {
- let event = document.createElement('div');
- event.innerHTML = `EventSource error: Failed to connect to ${subscribeURL}`;
- events.appendChild(event);
- };
- eventSource.onmessage = (e) => {
- let event = document.createElement('div');
- event.innerHTML = e.data;
- events.appendChild(event);
- };
- </script>
- </body>
- </html>
|