441:
easier to implement on the browser side, and works, at minimum, in every browser that supports XHR. As the name suggests, long polling requires the client to poll the server for an event (or set of events). The browser makes an Ajax-style request to the server, which is kept open until the server has new data to send to the browser, which is sent to the browser in a complete response. The browser initiates a new long polling request in order to obtain subsequent events.
384:
1045:
366:(XHR) object, a tool used by Ajax applications for browser–server communication, can also be pressed into service for server–browser Comet messaging by generating a custom data format for an XHR response, and parsing out each event using browser-side JavaScript; relying only on the browser firing the
282:
by offering two-way sustained interaction, using a persistent or long-lasting HTTP connection between the server and the client. Since browsers and proxies are not designed with server events in mind, several techniques to achieve this have been developed, each with different benefits and drawbacks.
287:
1.1 specification, which states "this specification... encourages clients to be conservative when opening multiple connections". Therefore, holding one connection open for real-time events has a negative impact on browser usability: the browser may be blocked from sending a new request while waiting
516:
elements, and setting their source to the location of the Comet server, which then sends back JavaScript (or JSONP) with some event as its payload. Each time the script request is completed, the browser opens a new one, just as in the XHR long polling case. This method has the advantage of being
440:
None of the above streaming transports work across all modern browsers without negative side-effects. This forces Comet developers to implement several complex streaming transports, switching between them depending on the browser. Consequently, many Comet applications use long polling, which is
139:
socket to communicate between the browser and the server. This socket can remain open as long as the browser is at the document hosting the applet. Event notifications can be sent in any format – text or binary – and decoded by the applet.
1051:
466:) or Javascript to be executed by the client. At the end of the processing of the response, the browser creates and sends another XHR, to await the next event. Thus the browser always keeps a request outstanding with the server, to be answered as each event occurs.
208:
following
Crockford's suggestion. The entire system, the client libraries, the messaging format known as JSON and the server, became the State Application Framework, parts of which were sold and used by Sun Microsystems, Amazon.com, EDS and Volkswagen.
608:
protocol for data streaming to Flash applications). These have the advantage of working identically across all browsers with the appropriate plugin installed and need not rely on HTTP connections, but the disadvantage of requiring the plugin to be
505:, and JavaScript code in the response will be executed in the current HTML document. This creates a potential security risk for both servers involved, though the risk to the data provider (in our case, the Comet server) can be avoided using
578:
code with multiple Comet servers, and allowing the same Comet server to communicate with multiple client-side JavaScript implementations. Bayeux is based on a publish/subscribe model, so servers supporting Bayeux have publish/subscribe
353:
One benefit of the iframes method is that it works in every common browser. Two downsides of this technique are the lack of a reliable error handling method, and the impossibility of tracking the state of the request calling process.
184:, a framework created by Just van den Broecke, was one of the first open source implementations. Pushlets were based on server-side Java servlets, and a client-side JavaScript library. Bang Networks – a
199:
In April 2001, Chip
Morningstar began developing a Java-based (J2SE) web server which used two HTTP sockets to keep open two communications channels between the custom HTTP server he designed and a client designed by
457:
long polling works like any standard use of XHR. The browser makes an asynchronous request of the server, which may wait for data to be available before responding. The response can contain encoded data (typically
1136:
350:
tag is executed as it is received. Some browsers require a specific minimum document size before parsing and execution is started, which can be obtained by initially sending 1–2 kB of padding spaces.
160:
funding. TANGO architecture has been patented by
Syracuse University. TANGO framework has been extensively used as a distance education tool. The framework has been commercialized by
985:
534:
1047:
United States Patent: 6078948 - Platform-independent collaboration backbone and framework for forming virtual communities having virtual rooms with collaborative sessions
574:. It leaves browser-specific transports in place, and defines a higher-level protocol for communication between browser and server, with the aim of allowing re-use of
1133:
494:
in front of one or both sources, making them appear to originate from the same domain. However, this is often undesirable for complexity or performance reasons.
204:; a functioning demo system existed as of June 2001. The server and client used a messaging format that the founders of State Software, Inc. assented to coin as
148:
The very first application using browser-to-browser communications was Tango
Interactive, implemented in 1996–98 at the Northeast Parallel Architectures Center (
319:. These events are incrementally handled and interpreted on the client side every time the server sends a new event, with neither side closing the connection.
1044:
Podgorny, Marek; Beca, Lukasz; Cheng, Gang; Fox, Geoffrey C.; Jurga, Tomasz; Olszewski, Konrad; Sokolowski, Piotr; Walczak, Krzysztof; PL (June 20, 2000),
255:, a startup since acquired by Google, built Comet-based real-time collaborative document editing. New Comet variants were created, such as the Java-based
964:
490:
enabled), Comet events cannot be used to modify the HTML and DOM of the main page, using those transports. This problem can be sidestepped by creating a
586:
protocol by the XMPP standards foundation. It emulates a bidirectional stream between the browser and server by using two synchronous HTTP connections.
1493:
1367:
342:
block, which implicitly declares it as infinitely long (sometimes called "forever frame"). As events occur, the iframe is gradually filled with
50:, encompassing multiple techniques for achieving this interaction. All these methods rely on features included by default in browsers, such as
1072:
525:
Browser-native technologies are inherent in the term Comet. Attempts to improve non-polling HTTP communication have come from multiple sides:
1310:
851:
723:
1001:
1480:
1108:
743:
769:
1350:
935:
893:
427:
486:
attacks. That is, if the main web page is served from one SLD, and the Comet server is located at another SLD (which does not have
394:
1255:
292:
for real-time information, which is an alias for the same physical server. This strategy is an application of domain sharding.
1199:
1467:
619:, implementing a Comet-like API with the help of a client JavaScript library on the browser. This API has been deprecated.
487:
136:
1233:
804:
605:
1557:
1552:
563:
API working draft specifies a method for creating a persistent connection with a server and receiving messages via an
502:
445:
compares long polling and HTTP streaming. Specific technologies for accomplishing long-polling include the following:
284:
266:"). Others that had previously used Java-applet based transports switched instead to pure-JavaScript implementations.
409:
164:
and used in a dozen or so
Command&Control and Training applications in the United States Department of Defense.
279:
686:
405:
346:
tags, containing JavaScript to be executed in the browser. Because browsers render HTML pages incrementally, each
288:
for the results of a previous request, e.g., a series of images. This can be worked around by creating a distinct
779:
339:
1181:
1562:
1220:
Orbited: Enabling Comet for the Masses: OSCON 2008 - O'Reilly
Conferences, July 21 - 25, 2008, Portland, Oregon
443:
IETF RFC 6202 "Known Issues and Best
Practices for the Use of Long Polling and Streaming in Bidirectional HTTP"
1018:
196: – had a lavishly-financed attempt to create a real-time push standard for the entire web.
655:
575:
910:
338:, which allows a website to embed one HTML document inside another). This invisible iframe is sent as a
308:
236:
798:
483:
132:
1520:
1083:
479:
153:
1249:
550:
538:
217:
111:
998:
1346:
1338:
1306:
1302:
1219:
1112:
979:
889:
881:
847:
821:
719:
616:
590:
316:
216:
Alex
Russell coined the term Comet in a post on his personal blog. The new term was a play on
213:
201:
1342:
885:
872:
783:
259:
240:
225:
747:
1237:
1185:
1140:
1005:
634:
629:
583:
571:
221:
193:
62:
35:
23:
943:
454:
363:
275:
185:
55:
1546:
1158:
1025:. Northeast Parallel Architecture Center, College of Engineering and Computer Science
295:
Specific methods of implementing Comet fall into two major categories: streaming and
244:
177:
47:
1468:
Google App Engine Blog: Happy
Holidays from the App Engine team - 1.4.0 SDK released
1331:
491:
331:
296:
1421:
1281:
1297:
Holdener III, Anthony T. (January 2008). "Page Layout with Frames that Aren't".
601:
597:
312:
128:
73:
for the collective techniques. Comet is known by several other names, including
39:
1448:
An alternative to XMLHttpRequest for long lasting server initiated push of data
1268:
475:
135:.0 in March 1996) made two-way sustained communications possible, using a raw
51:
31:
1230:
1154:
322:
Specific techniques for accomplishing streaming Comet include the following:
690:
560:
107:
91:
70:
54:, rather than on non-default plugins. The Comet approach differs from the
289:
256:
235:’s multi-protocol web-based chat application enabled users to connect to
231:
In 2006, some applications exposed those techniques to a wider audience:
189:
181:
173:
1443:
775:
252:
512:
A long-polling Comet transport can be created by dynamically creating
442:
1375:
1256:
Renkoo launches event service — in time to schedule holiday cocktails
1178:
715:
612:
557:
530:
1280:
Hypertext
Transfer Protocol (HTTP/1.1): Message Syntax and Routing,
1252:” (interview with Abe Fettig). Ajaxian. Retrieved 15 December 2007.
1073:"Experiences with Using TANGO Interactive in a Distributed Workshop"
412:. Statements consisting only of original research should be removed.
172:
The first set of Comet implementations dates back to 2000, with the
1396:
247:
chat platforms through the browser; Google added web-based chat to
506:
248:
232:
157:
27:
517:
cross-browser while still allowing cross-domain implementations.
330:
A basic technique for dynamic web application is to use a hidden
463:
205:
100:
274:
Comet applications attempt to eliminate the limitations of the
149:
106:
In recent years, the standardisation and widespread support of
1400:
459:
377:
99:
is not an acronym, but was coined by Alex Russell in his 2006
1329:
Flanagan, David (2006-08-17). "13.8.4 Cross-Site Scripting".
771:
Ajax Push (a.k.a. Comet) with Java Business Integration (JBI)
482:(SLDs), due to browser security policies designed to prevent
58:, in which a browser requests a complete web page at a time.
1134:
Pushlets: Send events from servlets to DHTML client browsers
1019:"TANGO - a Collaborative Environment for the World-Wide Web"
478:, none of the above transports can be used across different
161:
1524:
1481:
App Engine gets Streaming API and longer background tasks
1536:
Comet Daily provides information about Comet techniques.
1470:. Googleappengine.blogspot.com. Retrieved on 2014-04-12.
744:"Comet Programming: Using Ajax to Simulate Server Push"
401:
551:
All major browsers except Microsoft Internet Explorer
474:
While any Comet transport can be made to work across
844:
Comet and Reverse Ajax: The Next Generation Ajax 2.0
712:
Comet and Reverse Ajax: The Next-Generation Ajax 2.0
307:
An application using streaming Comet opens a single
144:
The first browser-to-browser communication framework
1188:”. Alex Russell’s blog. Retrieved 29 November 2007.
1330:
871:
535:Web Hypertext Application Technology Working Group
228:both being common household cleaners in the USA).
967:. Archived from the original on November 15, 1996
865:
863:
1231:Enterprise Comet & Web 2.0 Live Presentation
984:: CS1 maint: bot: original URL status unknown (
940:Simulating Server Push in a Standard Web Browser
710:Crane, Dave; McCarthy, Phil (October 13, 2008).
42:, without the browser explicitly requesting it.
1292:
1290:
999:"java.net.Socket (Java 2 Platform SE v1.4.2)"
8:
1258:”. Venture Beat. Retrieved 15 December 2007.
1155:"Will the "refresh" button become obsolete?"
593:, would be an alternative to the XHR object.
1200:"Microsoft Scrubs Comet from AJAX Tool Set"
541:, which defines a new JavaScript interface
497:Unlike iframes or XMLHttpRequest objects,
1494:"Package com.google.appengine.api.channel"
262:framework (although they prefer the term "
1271:”. DevX News. Retrieved 18 February 2008.
1082:. CEWES MSRC/PET TR/99-21. Archived from
842:Crane, Dave; McCarthy, Phil (July 2008).
656:"Comet: Low Latency Data for the Browser"
428:Learn how and when to remove this message
370:callback each time it receives new data.
1483:. Ars Technica. Retrieved on 2014-04-12.
1179:Comet: Low Latency Data for the Browser
1109:"CometDaily: Comet and Push Technology"
677:
646:
114:has rendered the Comet model obsolete.
1324:
1322:
1143:”. JavaWorld. Retrieved 1 August 2014.
1132:Just van den Broecke (1 March 2000). “
977:
936:"The Slow Load Technique/Reverse AJAX"
796:
1250:Jotspot Live: Live, group note-taking
816:
814:
737:
735:
7:
1422:"Bayeux Protocol - Bayeux 1.0draft1"
589:The JSONRequest object, proposed by
533:draft specification produced by the
1267:Clint Boulton (27 December 2005). “
1254:Matt Marshall (15 December 2006). “
915:Different ways of doing server push
1420:Alex Russell; et al. (2007).
1248:Dion Almaer (29 September 2005). “
1080:CEWES Major Shared Resource Center
746:. Webreference.com. Archived from
687:"AJAX alliance recognizes mashups"
685:Krill, Paul (September 24, 2007).
14:
1442:Crockford, Douglas (2006-04-17).
1269:Startups Board the AJAX Bandwagon
615:announced a new Channel API for
382:
1366:Ian Hickson, ed. (2007-10-27).
1333:JavaScript the Definitive Guide
870:Mahemoff, Michael (June 2006).
61:The use of Comet techniques in
1198:K. Taft, Darryl (2006-05-12).
1177:Alex Russell (3 March 2006). “
911:"More on Ajax and server push"
768:Egloff, Andreas (2007-05-05).
1:
1505:This API has been deprecated.
934:Nesbitt, Bryce (2005-11-01).
537:(WHATWG) specifies so called
488:cross-origin resource sharing
131:into browsers (starting with
65:predates the use of the word
1368:"6.2 Server-sent DOM events"
1284:. IETF. Retrieved 2014-07-29
1153:Borland, John (2001-04-01).
909:Double, Chris (2005-11-05).
654:Russell, Alex (2006-03-04).
315:to the server for all Comet
1395:Hickson, Ian (2009-04-23).
1023:Syracuse University SURFACE
570:The Bayeux protocol by the
501:tags can be pointed at any
449:XMLHttpRequest long polling
408:the claims made and adding
26:model in which a long-held
1579:
1372:HTML 5 - Call For Comments
1299:Ajax: The Definitive Guide
283:The biggest hurdle is the
1479:Paul, Ryan. (2010-12-06)
780:San Francisco, California
56:original model of the web
803:: CS1 maint: location (
596:Use of plugins, such as
553:include this technology.
180:, and KnowNow projects.
168:First Comet applications
1466:App, The. (2010-12-02)
470:Script tag long polling
95:among others. The term
576:client-side JavaScript
374:Ajax with long polling
276:page-by-page web model
1017:Beca, Lukasz (1997).
1004:May 19, 2009, at the
309:persistent connection
127:The ability to embed
16:Web application model
1444:"JSONRequest Duplex"
878:Ajax Design Patterns
545:and a new MIME type
484:cross-site scripting
480:second-level domains
133:Netscape Navigator 2
1397:"The WebSocket API"
1071:Baer, Troy (1999).
600:or the proprietary
453:For the most part,
188:start-up backed by
154:Syracuse University
1558:Web 2.0 neologisms
1553:Ajax (programming)
1236:2008-05-20 at the
1184:2008-08-12 at the
1139:2014-08-04 at the
539:server-sent events
393:possibly contains
368:onreadystatechange
123:Early Java applets
112:Server-sent events
1424:. Dojo Foundation
1312:978-0-596-52838-6
853:978-1-59059-998-3
725:978-1-59059-998-3
617:Google App Engine
591:Douglas Crockford
547:text/event-stream
438:
437:
430:
395:original research
334:HTML element (an
214:software engineer
202:Douglas Crockford
30:request allows a
1570:
1538:
1533:
1532:
1523:. Archived from
1508:
1507:
1502:
1501:
1490:
1484:
1477:
1471:
1464:
1458:
1457:
1455:
1454:
1439:
1433:
1432:
1430:
1429:
1417:
1411:
1410:
1408:
1407:
1392:
1386:
1385:
1383:
1382:
1363:
1357:
1356:
1336:
1326:
1317:
1316:
1294:
1285:
1278:
1272:
1265:
1259:
1246:
1240:
1228:
1222:
1217:
1211:
1210:
1208:
1207:
1195:
1189:
1175:
1169:
1168:
1166:
1165:
1150:
1144:
1130:
1124:
1123:
1121:
1120:
1111:. Archived from
1105:
1099:
1098:
1096:
1094:
1088:
1077:
1068:
1062:
1061:
1060:
1059:
1050:, archived from
1041:
1035:
1034:
1032:
1030:
1014:
1008:
996:
990:
989:
983:
975:
973:
972:
961:
955:
954:
952:
951:
942:. Archived from
931:
925:
924:
922:
921:
906:
900:
899:
875:
867:
858:
857:
839:
833:
832:
830:
829:
818:
809:
808:
802:
794:
792:
791:
784:Sun Microsystems
765:
759:
758:
756:
755:
739:
730:
729:
707:
701:
700:
698:
697:
682:
666:
665:
663:
662:
651:
566:
548:
544:
515:
500:
433:
426:
422:
419:
413:
410:inline citations
386:
385:
378:
369:
349:
345:
278:and traditional
92:HTTP server push
1578:
1577:
1573:
1572:
1571:
1569:
1568:
1567:
1563:Web development
1543:
1542:
1530:
1528:
1519:
1516:
1511:
1499:
1497:
1492:
1491:
1487:
1478:
1474:
1465:
1461:
1452:
1450:
1441:
1440:
1436:
1427:
1425:
1419:
1418:
1414:
1405:
1403:
1394:
1393:
1389:
1380:
1378:
1365:
1364:
1360:
1353:
1328:
1327:
1320:
1313:
1305:. p. 320.
1296:
1295:
1288:
1279:
1275:
1266:
1262:
1253:
1247:
1243:
1238:Wayback Machine
1229:
1225:
1218:
1214:
1205:
1203:
1197:
1196:
1192:
1186:Wayback Machine
1176:
1172:
1163:
1161:
1152:
1151:
1147:
1141:Wayback Machine
1131:
1127:
1118:
1116:
1107:
1106:
1102:
1092:
1090:
1089:on 8 March 2021
1086:
1075:
1070:
1069:
1065:
1057:
1055:
1043:
1042:
1038:
1028:
1026:
1016:
1015:
1011:
1006:Wayback Machine
997:
993:
976:
970:
968:
963:
962:
958:
949:
947:
933:
932:
928:
919:
917:
908:
907:
903:
896:
869:
868:
861:
854:
841:
840:
836:
827:
825:
820:
819:
812:
795:
789:
787:
767:
766:
762:
753:
751:
742:Gravelle, Rob.
741:
740:
733:
726:
709:
708:
704:
695:
693:
684:
683:
679:
675:
670:
669:
660:
658:
653:
652:
648:
643:
635:Pull technology
630:Push technology
626:
572:Dojo Foundation
564:
546:
542:
523:
513:
498:
472:
451:
434:
423:
417:
414:
399:
387:
383:
376:
367:
360:
347:
343:
328:
305:
272:
270:Implementations
212:In March 2006,
194:Marc Andreessen
170:
146:
125:
120:
63:web development
24:web application
17:
12:
11:
5:
1576:
1574:
1566:
1565:
1560:
1555:
1545:
1544:
1541:
1540:
1515:
1514:External links
1512:
1510:
1509:
1485:
1472:
1459:
1434:
1412:
1387:
1358:
1351:
1339:O'Reilly Media
1318:
1311:
1303:O'Reilly Media
1286:
1273:
1260:
1241:
1223:
1212:
1190:
1170:
1145:
1125:
1100:
1063:
1036:
1009:
991:
965:"Netscape.com"
956:
926:
901:
894:
882:O'Reilly Media
873:"Web Remoting"
859:
852:
834:
824:. ICEfaces.org
810:
760:
731:
724:
702:
676:
674:
671:
668:
667:
645:
644:
642:
639:
638:
637:
632:
625:
622:
621:
620:
610:
594:
587:
580:
568:
554:
522:
519:
471:
468:
455:XMLHttpRequest
450:
447:
436:
435:
390:
388:
381:
375:
372:
364:XMLHttpRequest
359:
358:XMLHttpRequest
356:
327:
324:
313:client browser
304:
301:
271:
268:
186:Silicon Valley
169:
166:
145:
142:
124:
121:
119:
116:
87:HTTP Streaming
15:
13:
10:
9:
6:
4:
3:
2:
1575:
1564:
1561:
1559:
1556:
1554:
1551:
1550:
1548:
1537:
1527:on 2008-01-04
1526:
1522:
1521:"Comet Daily"
1518:
1517:
1513:
1506:
1495:
1489:
1486:
1482:
1476:
1473:
1469:
1463:
1460:
1449:
1445:
1438:
1435:
1423:
1416:
1413:
1402:
1398:
1391:
1388:
1377:
1373:
1369:
1362:
1359:
1354:
1352:0-596-10199-6
1348:
1344:
1340:
1335:
1334:
1325:
1323:
1319:
1314:
1308:
1304:
1300:
1293:
1291:
1287:
1283:
1277:
1274:
1270:
1264:
1261:
1257:
1251:
1245:
1242:
1239:
1235:
1232:
1227:
1224:
1221:
1216:
1213:
1201:
1194:
1191:
1187:
1183:
1180:
1174:
1171:
1160:
1159:CNET Networks
1156:
1149:
1146:
1142:
1138:
1135:
1129:
1126:
1115:on 2007-11-13
1114:
1110:
1104:
1101:
1085:
1081:
1074:
1067:
1064:
1054:on 2017-05-09
1053:
1049:
1048:
1040:
1037:
1024:
1020:
1013:
1010:
1007:
1003:
1000:
995:
992:
987:
981:
966:
960:
957:
946:on 2006-02-08
945:
941:
937:
930:
927:
916:
912:
905:
902:
897:
895:0-596-10180-5
891:
887:
883:
879:
874:
866:
864:
860:
855:
849:
845:
838:
835:
823:
817:
815:
811:
806:
800:
785:
781:
777:
773:
772:
764:
761:
750:on 2010-10-18
749:
745:
738:
736:
732:
727:
721:
717:
713:
706:
703:
692:
688:
681:
678:
672:
657:
650:
647:
640:
636:
633:
631:
628:
627:
623:
618:
614:
611:
607:
603:
599:
595:
592:
588:
585:
581:
577:
573:
569:
562:
559:
555:
552:
540:
536:
532:
528:
527:
526:
520:
518:
510:
508:
504:
495:
493:
489:
485:
481:
477:
469:
467:
465:
461:
456:
448:
446:
444:
432:
429:
421:
418:December 2017
411:
407:
403:
397:
396:
391:This article
389:
380:
379:
373:
371:
365:
357:
355:
351:
341:
337:
333:
326:Hidden iframe
325:
323:
320:
318:
314:
310:
302:
300:
298:
293:
291:
286:
281:
277:
269:
267:
265:
261:
258:
254:
250:
246:
242:
238:
234:
229:
227:
223:
219:
215:
210:
207:
203:
197:
195:
191:
187:
183:
179:
178:Lightstreamer
175:
167:
165:
163:
159:
155:
151:
143:
141:
138:
134:
130:
122:
117:
115:
113:
109:
104:
102:
98:
94:
93:
88:
84:
80:
76:
72:
68:
64:
59:
57:
53:
49:
48:umbrella term
45:
41:
37:
33:
29:
25:
21:
1535:
1529:. Retrieved
1525:the original
1504:
1498:. Retrieved
1496:. 2019-11-16
1488:
1475:
1462:
1451:. Retrieved
1447:
1437:
1426:. Retrieved
1415:
1404:. Retrieved
1390:
1379:. Retrieved
1371:
1361:
1332:
1298:
1276:
1263:
1244:
1226:
1215:
1204:. Retrieved
1193:
1173:
1162:. Retrieved
1148:
1128:
1117:. Retrieved
1113:the original
1103:
1091:. Retrieved
1084:the original
1079:
1066:
1056:, retrieved
1052:the original
1046:
1039:
1027:. Retrieved
1022:
1012:
994:
969:. Retrieved
959:
948:. Retrieved
944:the original
939:
929:
918:. Retrieved
914:
904:
877:
843:
837:
826:. Retrieved
788:. Retrieved
770:
763:
752:. Retrieved
748:the original
711:
705:
694:. Retrieved
680:
659:. Retrieved
649:
598:Java applets
524:
521:Alternatives
511:
496:
492:proxy server
473:
452:
439:
424:
415:
392:
361:
352:
336:inline frame
335:
329:
321:
306:
297:long polling
294:
273:
263:
230:
211:
198:
171:
147:
129:Java applets
126:
105:
96:
90:
86:
82:
79:Reverse Ajax
78:
74:
66:
60:
43:
19:
18:
1282:section 6.4
1202:. eWEEK.com
1093:27 February
1029:27 February
884:. pp.
822:"Ajax Push"
799:cite speech
602:Adobe Flash
543:EventSource
192:co-founder
83:Two-way-web
1547:Categories
1531:2007-11-29
1500:2020-04-30
1453:2008-05-05
1428:2007-12-14
1406:2009-07-21
1381:2008-10-07
1341:. p.
1206:2008-07-21
1164:2008-07-22
1119:2007-12-15
1058:2016-02-27
971:2017-08-16
950:2008-05-06
920:2008-05-05
846:. Apress.
828:2014-10-23
790:2008-06-10
774:(Speech).
754:2010-10-20
696:2010-10-20
673:References
661:2014-11-02
476:subdomains
402:improve it
162:CollabWorx
52:JavaScript
38:data to a
32:web server
691:InfoWorld
609:installed
579:built-in.
567:callback.
565:onmessage
561:WebSocket
406:verifying
311:from the
303:Streaming
264:Ajax Push
245:Microsoft
108:WebSocket
75:Ajax Push
71:neologism
1234:Archived
1182:Archived
1137:Archived
1002:Archived
980:cite web
624:See also
290:hostname
257:ICEfaces
190:Netscape
182:Pushlets
174:Pushlets
776:JavaOne
604:(using
400:Please
340:chunked
280:polling
253:JotSpot
118:History
40:browser
1376:WHATWG
1349:
1309:
892:
886:19, 85
850:
778:2007,
722:
716:Apress
613:Google
558:HTML 5
531:HTML 5
514:script
499:script
348:script
344:script
332:iframe
317:events
243:, and
156:using
103:post.
89:, and
46:is an
1087:(PDF)
1076:(PDF)
786:, Inc
641:Notes
507:JSONP
249:Gmail
241:Yahoo
233:Meebo
226:Comet
158:DARPA
152:) at
97:Comet
69:as a
67:Comet
44:Comet
28:HTTPS
22:is a
20:Comet
1347:ISBN
1307:ISBN
1095:2016
1031:2016
986:link
890:ISBN
848:ISBN
805:link
720:ISBN
606:RTMP
584:BOSH
582:The
556:The
529:The
464:JSON
362:The
285:HTTP
224:and
222:Ajax
218:Ajax
206:JSON
150:NPAC
110:and
101:blog
36:push
1401:W3C
1343:994
503:URI
462:or
460:XML
404:by
260:JSF
237:AOL
137:TCP
34:to
1549::
1534:.
1503:.
1446:.
1399:.
1374:.
1370:.
1345:.
1337:.
1321:^
1301:.
1289:^
1157:.
1078:.
1021:.
982:}}
978:{{
938:.
913:.
888:.
880:.
876:.
862:^
813:^
801:}}
797:{{
782::
734:^
718:.
714:.
689:.
549:.
509:.
299:.
251:;
239:,
176:,
85:,
81:,
77:,
1539:*
1456:.
1431:.
1409:.
1384:.
1355:.
1315:.
1209:.
1167:.
1122:.
1097:.
1033:.
988:)
974:.
953:.
923:.
898:.
856:.
831:.
807:)
793:.
757:.
728:.
699:.
664:.
431:)
425:(
420:)
416:(
398:.
220:(
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.