Người Viết : ViKiMi Editor

Cách thức cập nhật Website sử dụng Server Sent Events, Cập nhật thông tin từ Máy Chủ !
Chúng ta đã quen với việc Website được hiển thị và sử dụng chúng mỗi khi thực hiện lướt Internet. Chúng ta cũng ít khi gặp trường hợp Website đưa ra các bản cập nhật. Điều này không rườm rà nếu các thiết kế là cần thiết, chúng ta vẫn thấy rằng có rất nhiều Website vẫn duy trì việc cập nhật theo định kỳ. Bạn có thể lựa chọn để cập nhật các Phiên bản mới hơn.
Lựa chọn cần thiết & đơn giản nhất trong Trường hợp này là :
+ HTML SSE API ( Server-Sent Events / SSE )
>> Đây là Sự kiện do máy chủ gửi ( SSE ) cho phép trang web nhận thông tin cập nhật từ máy chủ. Nó được hỗ trợ với Ngôn ngữ Đánh dấu HTML ! Và Bạn có thể làm việc bằng cách nhúng Script vào ( Thông thường thì sẽ sử dụng JavaScript )
Sự kiện do máy chủ gửi là hoạt động Nhắn tin một chiều.
Sự kiện do máy chủ gửi giúp một trang web tự động nhận các bản cập nhật từ máy chủ. Bạn có thể Lập trình để tạo các Cập nhật cần thiết.
( * ) Sự kiện do máy chủ gửi ( SSE ), các bản cập nhật sẽ tự động xuất hiện.
Vậy làm thế nào để có các bản cập nhập từ máy chủ, Sử dụng HTML SSE API
Example :
Bước 1 : Tạo Trang Web HTML để nhận thông tin cập nhật từ máy chủ
(Tuỳ thuộc vào các CMS hoặc Frameworks Bạn sử dụng xây dựng Website thì sẽ có cách tuỳ chỉnh phù hợp)
<!DOCTYPE html>
<html>
<body>
<h1>Trang HTML nhận Cập Nhật từ Máy chủ !</h1>
<div id="result"></div>
<!-- Đoạn JavaScript -->
<script>
if(typeof(EventSource) !== "undefined") {
var source = new EventSource("sse.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += event.data + "<br>";
};
} else {
document.getElementById("result").innerHTML = "Trình duyệt không hỗ trợ server-sent events...";
}
</script>
</body>
</html>
+ Thực hiện kiểm tra khả năng hỗ trợ của trình duyệt đối với các sự kiện do máy chủ gửi ( SSE ):
if(typeof(EventSource) !== "undefined") {
/*
* Có hỗ trợ Server-sent events !
*/
} else {
/*
* Không hỗ trợ Server-sent events !
*/
}
+ Nếu có hỗ trợ SSE >> Thực hiện tạo đối tượng EventSource mới để nhận cập nhập từ phía máy chủ
+ Mỗi khi máy chủ có cập nhật mới, thì sự kiện onmessage sẽ xảy ra.
Sự kiên Onmessage sẽ giúp nhận về các thông gửi từ máy chủ Server.
Nhờ vậy, việc cập nhật thông tin từ máy chủ được tự động hoá thay vì thủ công.
Bước 2 : Tạo Mã Server-Side Code ( Mã Code được đặt tại máy chủ ), cho phép gửi cập nhật từ máy chủ
Yêu cầu : Cần một máy chủ có khả năng gửi các bản cập nhật dữ liệu (như PHP hoặc ASP). Hoặc bạn có thể sử dụng ngay tại Localhost
File Code sse.php như sau :
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time_server = date('r');
echo "Thời Gian của Server: {$time_server}\n\n";
flush();
?>
+ Chỉ định “Content-Type” là “text/event-stream”
+ Chỉ định “Cache-Control” là no-cache để không lưu vào bộ nhớ đệm
+ Phương thức Flush để Xoá dữ liệu đầu ra trở lại trang web
Như vậy, Bạn đã có thể hoàn thành một cập nhật cơ bản từ máy chủ dành cho Website của Bạn. Một yêu cầu cần có ban đầu cho xử lý này đó là :
+ Trình duyệt của Khách truy cập ( Phía Client ) có hỗ trợ SSE, để có thể nhận thông tin cập nhật từ Máy chủ. Hầu hết các trình duyệt hiện đại đều hỗ trợ khả năng này. Một vài trình duyệt cũ thì không có hỗ trợ
Ngoài việc sử dụng Mã PHP tại SERVER, Bạn có thể lựa chọn các Ngôn ngữ khác để làm việc này. Chẳng hạn phía dưới là Ví Dụ sử dụng ngôn ngữ ASP tại SERVER để gửi cập nhật từ máy chủ :
Code in ASP (VB) (sse.asp):
<%
Response.ContentType = “text/event-stream”
Response.Expires = -1
Response.Write(“Thời Gian Máy Chủ: ” & now())
Response.Flush()
%>