html5 sent,HTML5 - Server Sent Events

HTML5 - Server Sent Events

Advertisements

Conventional web applications generate events which are dispatched to the web server. For example, a simple click on a link requests a new page from the server.

The type of events which are flowing from web browser to the web server may be called client-sent events.

Along with HTML5, WHATWG Web Applications 1.0 introduces events which flow from web server to the web browsers and they are called Server-Sent Events (SSE). Using SSE you can push DOM events continuously from your web server to the visitor's browser.

The event streaming approach opens a persistent connection to the server, sending data to the client when new information is available, eliminating the need for continuous polling.

Server-sent events standardize how we stream data from the server to the client.

Web Application for SSE

To use Server-Sent Events in a web application, you would need to add an element to the document.

The src attribute of element should point to an URL which should provide a persistent HTTP connection that sends a data stream containing the events.

The URL would point to a PHP, PERL or any Python script which would take care of sending event data consistently. Following is a simple example of web application which would expect server time.

/* Define event handling logic here */

Server Side Script for SSE

A server side script should send Content-type header specifying the type text/event-stream as follows.

print "Content-Type: text/event-stream\n\n";

After setting Content-Type, server side script would send an Event: tag followed by event name. Following example would send Server-Time as event name terminated by a new line character.

print "Event: server-time\n";

Final step is to send event data using Data: tag which would be followed by integer of string value terminated by a new line character as follows −

$time = localtime();

print "Data: $time\n";

Finally, following is complete ticker.cgi written in Perl −

#!/usr/bin/perl

print "Content-Type: text/event-stream\n\n";

while(true) {

print "Event: server-time\n";

$time = localtime();

print "Data: $time\n";

sleep(5);

}

Handle Server-Sent Events

Let us modify our web application to handle server-sent events. Following is the final example.

document.getElementsByTagName("eventsource")[0].addEventListener("server-time",

eventHandler, false);

function eventHandler(event) {

// Alert time sent by the server

document.querySelector('#ticker').innerHTML = event.data;

}

[TIME]

Before testing Server-Sent events, I would suggest that you make sure your web browser supports this concept.

Advertisements

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值