1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
---
title: EventSource
slug: Web/API/EventSource
tags:
- API
- Eventos Server-sent
- Interfaz
translation_of: Web/API/EventSource
---
<div>{{APIRef("Websockets API")}}</div>
<p>La interfaz <strong><code>EventSource</code></strong> se utiliza para recibir eventos server-side. Se realiza la conexión a un servidor sobre HTTP y se reciben eventos en formato <code>text/event-stream</code> sin tener que cerrar la conexión.</p>
<dl>
</dl>
<h2 id="Constructor">Constructor</h2>
<dl>
<dt>{{domxref("EventSource.EventSource", "EventSource()")}}</dt>
<dd>Crea un nuevo <code>EventSource</code> a partiendo de un valor {{domxref("USVString")}}.</dd>
</dl>
<h2 id="Propiedades">Propiedades</h2>
<p><em>Esta interfaz también heredará propiedades de su antecesor, {{domxref("EventTarget")}}.</em></p>
<dl>
<dt>{{domxref("EventSource.readyState")}} {{readonlyinline}}</dt>
<dd>Un número representando el estado de la conexión. Los valores posibles son CONECTANDO (<code>0</code>), ABIERTO (<code>1</code>), o CERRADO (<code>2</code>).</dd>
<dt>{{domxref("EventSource.url")}} {{readonlyinline}}</dt>
<dd>Un valor {{domxref("DOMString")}} representando la URL de la fuente.</dd>
<dt>{{domxref("EventSource.withCredentials")}} {{readonlyinline}}</dt>
<dd>Un valor {{domxref("Boolean")}} indicando si el objecto <code>EventSource</code> ha sido instanciado con credeciales CORS disponibles (true) o no (false, valor por defecto).</dd>
</dl>
<h3 id="Manejadores_de_Eventos">Manejadores de Eventos</h3>
<dl>
<dt>{{domxref("EventSource.onerror")}}</dt>
<dd>En un {{domxref("EventHandler")}} que se invoca cuando ocurre un error y se envía el evento {{event("error")}} a través del objeto <code>EventSource</code>.</dd>
<dt>{{domxref("EventSource.onmessage")}}</dt>
<dd>Es un {{domxref("EventHandler")}} que se invoca cuando se recibe un evento {{event("message")}}, que indica que se ha enviado un mensaje desde la fuente.</dd>
<dt>{{domxref("EventSource.onopen")}}</dt>
<dd>Es un {{domxref("EventHandler")}} que se invoca cuando se recibe un evento {{event("open")}}, que sucede en el momento que la conexión se abre.</dd>
</dl>
<h2 id="Métodos">Métodos</h2>
<p><em>Esta interfaz también heredará métodos de su antecesor, {{domxref("EventTarget")}}.</em></p>
<dl>
<dt>{{domxref("EventSource.close()")}}</dt>
<dd>Cierra la conexión, si ésta existe, y asigna el valor CLOSED al atributo <code>readyState</code>. Si la conexión ya estaba cerrada, este método no hace nada.</dd>
</dl>
<h2 id="Ejemplos">Ejemplos</h2>
<pre class="brush: js">var evtSource = new EventSource('sse.php');
var eventList = document.querySelector('ul');
evtSource.onmessage = function(e) {
var newElement = document.createElement("li");
newElement.textContent = "message: " + e.data;
eventList.appendChild(newElement);
}</pre>
<div class="note">
<p><strong>Nota</strong>: Está disponible un ejemplo completo en GitHub — ver <a href="https://github.com/mdn/dom-examples/tree/master/server-sent-events">Simple SSE demo using PHP.</a></p>
</div>
<h2 id="Especificaciones">Especificaciones</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Especificación</th>
<th scope="col">Estado</th>
<th scope="col">Comentario</th>
</tr>
<tr>
<td>{{SpecName('HTML WHATWG', "comms.html#the-eventsource-interface", "EventSource")}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<ul>
</ul>
<h2 id="Compatibilidad_de_navegadoresEdit">Compatibilidad de navegadores<a class="button section-edit only-icon" href="https://developer.mozilla.org/es/docs/Web/API/Blob$edit#Browser_compatibility" rel="nofollow, noindex"><span>Edit</span></a></h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Chrome</th>
<th>Edge</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Soporte EventSource</td>
<td>6</td>
<td>{{CompatNo}}</td>
<td>{{CompatGeckoDesktop("6.0")}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>5</td>
</tr>
<tr>
<td>Disponible en workers compartidos y dedicados<sup>[1]</sup></td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatGeckoDesktop("53.0")}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Características</th>
<th>Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Soporte EventSource</td>
<td>4.4</td>
<td>45</td>
<td>{{CompatNo}}</td>
<td>12</td>
<td>4.1</td>
</tr>
<tr>
<td>Disponible en workers compartidos y dedicados<sup>[1]</sup></td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoMobile("53.0")}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<p>[1] Pero <a href="https://github.com/w3c/ServiceWorker/issues/947">todavía no disponible en service workers</a>.</p>
<h2 id="Ver_también">Ver también</h2>
<ul>
<li><a href="/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events" title="en/Server-sent events/Using server-sent events">Using server-sent events</a></li>
</ul>
|