Comet (programming): Difference between revisions

Content deleted Content added
<html> <head> <script src="https://cdn.tailwindcss.com"> </script> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" rel="stylesheet"/> <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet"/> </head> <body class="bg-black text-white font-roboto"> <div class="p-4"> <div class="flex items-center mb-4"> <i class="fas fa-arrow-left text-white text-xl"> </i> </div> <div class=
Tags: Reverted possible vandalism Incorrectly formatted external link or image Visual edit Mobile edit Mobile web edit
Bender the Bot (talk | contribs)
m Alternatives: HTTP to HTTPS for Blogspot
 
(7 intermediate revisions by 7 users not shown)
Line 1:
{{short description|Web application model}}
'''Comet''' is a [[web application]] model in which a long-held [[HTTPS]] request allows a [[web server]] to [[Push technology|push]] data to a [[web browser|browser]], without the browser explicitly requesting it.<ref name='"MASH'">{{cite web | url = http://www.infoworld.com/d/developer-world/ajax-alliance-recognizes-mashups-559 | title = AJAX alliance recognizes mashups | access-date = 2010-10-20 | last = Krill | first = Paul | date = September 24, 2007 | publisher = [[InfoWorld]]}}</ref><ref name="CRANG">{{cite book|title=Comet and Reverse Ajax: The Next-Generation Ajax 2.0|last2=McCarthy|first2=Phil|date=October 13, 2008|publisher=[[Apress]]|isbn=978-1-59059-998-3|last1=Crane|first1=Dave}}<!--| accessdate = 2010-10-20 --></ref> ''Comet'' is an [[umbrella term]], encompassing multiple techniques for achieving this interaction. All these methods rely on features included by default in browsers, such as [[JavaScript]], rather than on non-default plugins. The Comet approach differs from the [[World Wide Web#Function|original model of the web]], in which a browser requests a complete web page at a time.<ref name = "WRC" />
<html>
<head>
<script src="https://cdn.tailwindcss.com">
</script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&amp;display=swap" rel="stylesheet"/>
</head>
<body class="bg-black text-white font-roboto">
<div class="p-4">
<div class="flex items-center mb-4">
<i class="fas fa-arrow-left text-white text-xl">
</i>
</div>
<div class="mb-4">
<p class="text-blue-400">
Neron's Brother
</p>
<h1 class="text-3xl font-bold">
Supreme Duelist Stickman
</h1>
</div>
<div class="flex items-center mb-4">
<img alt="App icon" class="w-12 h-12 rounded-md" height="50" src="https://storage.googleapis.com/a1aa/image/g9oT0vChYn6VExitXZq3U4VLOgSqhSt4cwkBi2AeykPSGFyJA.jpg" width="50"/>
<div class="ml-4">
<div class="flex items-center">
<span class="text-lg font-bold">
4,4
</span>
<i class="fas fa-star text-yellow-400 ml-1">
</i>
<span class="text-sm ml-2">
1 jt ulasan
</span>
</div>
<div class="flex items-center mt-1">
<span class="text-sm">
100 jt+
</span>
<span class="text-sm ml-4">
Download
</span>
<span class="text-sm ml-4">
7+
</span>
<span class="text-sm ml-1">
Rating 7+
</span>
</div>
</div>
</div>
<div class="flex items-center mb-4">
<button class="bg-blue-500 text-white px-4 py-2 rounded-md mr-4">
Instal
</button>
<button class="border border-gray-500 text-white px-4 py-2 rounded-md">
Tambahkan ke wishlist
</button>
</div>
<div class="text-sm text-gray-400 mb-4">
Berisi iklan · Pembelian dalam apl
</div>
<div class="flex space-x-4 mb-4">
<img alt="Game screenshot 1" class="w-1/2 rounded-md" height="100" src="https://storage.googleapis.com/a1aa/image/9PfWtBpexYgyK0hJHCjTDw1QZOIWjdfNmH89eptoz42EyoQOB.jpg" width="200"/>
<img alt="Game screenshot 2" class="w-1/2 rounded-md" height="100" src="https://storage.googleapis.com/a1aa/image/elgdTzHp3YzIYCKvrS1W8KHdGKyqHyUdYacjFDo8kcDRGFyJA.jpg" width="200"/>
</div>
<div class="mb-4">
<h2 class="text-xl font-bold mb-2">
Tentang game ini
</h2>
<p>
Supreme Duelist Stickman adalah permainan seluler pertarungan tongkat yang lucu
</p>
</div>
<div class="mb-4">
<h2 class="text-xl font-bold mb-2">
Acara &amp; penawaran
</h2>
<div class="relative">
<img alt="Event image" class="w-full rounded-md" height="200" src="https://storage.googleapis.com/a1aa/image/fbeegCpX06U5YJEoYhEqF11FSLU30qA8QCeLN3GXtK9UyoQOB.jpg" width="400"/>
<div class="absolute top-0 left-0 bg-gray-800 bg-opacity-75 text-white text-sm px-2 py-1 rounded-br-md">
Berakhir tanggal 20/10/24
</div>
</div>
<p class="mt-2">
Rayakan Oktoberfest di Valhalla!
</p>
</div>
<div>
<h2 class="text-xl font-bold mb-2">
Rating dan ulasan
</h2>
<p class="text-sm text-gray-400">
Rating dan ulasan diverifikasi dan berasal dari orang yang menggunakan jenis perangkat yang sama dengan yang Anda gunakan
</p>
</div>
</div>
</body>
</html>}}
'''Comet''' is a [[web application]] model in which a long-held [[HTTPS]] request allows a [[web server]] to [[Push technology|push]] data to a [[web browser|browser]], without the browser explicitly requesting it.<ref name='MASH'>{{cite web | url = http://www.infoworld.com/d/developer-world/ajax-alliance-recognizes-mashups-559 | title = AJAX alliance recognizes mashups | access-date = 2010-10-20 | last = Krill | first = Paul | date = September 24, 2007 | publisher = [[InfoWorld]]}}</ref><ref name="CRANG">{{cite book|title=Comet and Reverse Ajax: The Next-Generation Ajax 2.0|last2=McCarthy|first2=Phil|date=October 13, 2008|publisher=[[Apress]]|isbn=978-1-59059-998-3|last1=Crane|first1=Dave}}<!--| accessdate = 2010-10-20 --></ref> ''Comet'' is an [[umbrella term]], encompassing multiple techniques for achieving this interaction. All these methods rely on features included by default in browsers, such as [[JavaScript]], rather than on non-default plugins. The Comet approach differs from the [[World Wide Web#Function|original model of the web]], in which a browser requests a complete web page at a time.<ref name = "WRC" />
 
The use of Comet techniques in [[web development]] predates the use of the word ''Comet'' as a [[neologism]] for the collective techniques. Comet is known by several other names, including
Line 158 ⟶ 60:
|archive-date = 2006-02-08
}}
</ref> The term ''Comet'' is not an acronym, but was coined by Alex Russell in his 2006 [[blog]] post.{{efn|<ref>{{cite web
|url = http://infrequently.org/2006/03/comet-low-latency-data-for-the-browser/
|title = Comet: Low Latency Data for the Browser
Line 164 ⟶ 66:
|last = Russell
|date = 2006-03-04
|access-date = 2014-11-02}}
}}</ref>{{source?citation needed|date=June 2023}}
 
In recent years{{When|date=January 2025}}, the standardisation and widespread support of [[WebSocket]] and [[Server-sent events]] has rendered the Comet model obsolete.
 
==History==
Line 196 ⟶ 98:
| archive-url = https://web.archive.org/web/20210308093626/https://www.dsc.soic.indiana.edu/sites/default/files/tr_9921.pdf
| url-status = dead
}}</ref> The framework has been commercialized by [http://www.collabworx.com CollabWorx] and used in a dozen or so Command&Control and Training applications in the United States Department of Defense{{factcitation needed|date=December 2017}}.
 
===First Comet applications===
The first set of Comet implementations dates back to 2000,<ref name="CometDaily_History">{{cite web |url=http://cometdaily.com/2007/10/19/comet-and-push-technology/ |title=CometDaily: Comet and Push Technology |access-date=2007-12-15 |archive-url=https://web.archive.org/web/20071113174053/http://cometdaily.com/2007/10/19/comet-and-push-technology/ |archive-date=2007-11-13 |url-status=dead }}</ref>{{unreliable source?|date=November 2017}} with the [[Pushlets]], [[Lightstreamer]], and KnowNow projects. [[Pushlets]], a framework created by Just van den Broecke, was one of the first<ref name="pushlets-javaworld">Just van den Broecke (1 March 2000). “[http://www.javaworld.com/article/2076063/java-web-development/pushlets--send-events-from-servlets-to-dhtml-client-browsers.html Pushlets: Send events from servlets to DHTML client browsers] {{Webarchive|url=https://web.archive.org/web/20140804175811/http://www.javaworld.com/article/2076063/java-web-development/pushlets--send-events-from-servlets-to-dhtml-client-browsers.html |date=2014-08-04 }}”. JavaWorld. Retrieved 1 August 2014.</ref> open source implementations. Pushlets were based on server-side Java servlets, and a client-side JavaScript library. Bang Networks{{snd}} a [[Silicon Valley]] start-up backed by [[Netscape]] co-founder [[Marc Andreessen]]{{snd}} had a lavishly- financed attempt to create a real-time push standard for the entire web.<ref>{{cite web
|url=http://news.cnet.com/2100-1023-255088.html
|title=Will the "refresh" button become obsolete?
Line 279 ⟶ 181:
Browser-native technologies are inherent in the term Comet. Attempts to improve non-polling HTTP communication have come from multiple sides:
 
* The [[HTML 5]] draft specification produced by the [[Web Hypertext Application Technology Working Group]] (WHATWG) specifies so called [[server-sent events]],<ref name='"server-sent-events'">{{cite web|editor=Ian Hickson |date=2007-10-27 |work=HTML 5 - Call For Comments|title=6.2 Server-sent DOM events|url=http://www.whatwg.org/specs/web-apps/2007-10-26/multipage/section-server-sent-events.html#server-sent-events |publisher=[[WHATWG]]|access-date=2008-10-07}}</ref> which defines a new JavaScript interface <code>EventSource</code> and a new MIME type <code>text/event-stream</code>. [[Server-sent_events#Web_browsers|All major browsers except Microsoft Internet Explorer]] include this technology.
* The [[HTML 5]] [[WebSocket]] API working draft specifies a method for creating a persistent connection with a server and receiving messages via an <code>onmessage</code> callback.<ref>
{{cite web
|url=http://www.w3.org/TR/websockets/
Line 303 ⟶ 205:
}}</ref>
* Use of plugins, such as [[Java applet]]s or the proprietary [[Adobe Flash]] (using [[Real-Time Messaging Protocol|RTMP]] 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 installed
* [[Google]] announced<ref>App, The. (2010-12-02) [httphttps://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-engine-team-140.html Google App Engine Blog: Happy Holidays from the App Engine team - 1.4.0 SDK released]. Googleappengine.blogspot.com. Retrieved on 2014-04-12.</ref> a new Channel API for [[Google App Engine]],<ref>Paul, Ryan. (2010-12-06) [https://arstechnica.com/web/news/2010/12/app-engine-gets-streaming-api-and-longer-background-tasks.ars App Engine gets Streaming API and longer background tasks]. Ars Technica. Retrieved on 2014-04-12.</ref> implementing a Comet-like API with the help of a client JavaScript library on the browser. This API has been deprecated. <ref>{{cite web |url=https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/channel/package-summary |title=Package com.google.appengine.api.channel |date=2019-11-16 |access-date=2020-04-30 |quote=This API has been deprecated. }}</ref>
 
==See also==
Line 310 ⟶ 212:
 
== Notes ==
{{noteslistnotelist}}
 
==References==