Hướng dẫn dùng no leer trong PHP

Sử dụng SSE trong PHP là sử dụng kỹ thuật SSE để đưa dữ liệu về user 1 cách tự động khi có dữ liệu mới từ phía server, code phía server sẽ dùng là PHP nhé.

1.  Kiến thức cần biết để sử dụng SSE trong PHP

  • Để thực hiện bài hướng dẫn này, bạn hãy đọc bài này trước nhé: Kỹ thuật Server Sent Events – truyền dữ liệu tự động từ server
  • Để hiện thực sse, thường bạn sẽ code trong 2 file, 1 file code để cung cấp dữ liệu phía server và 1 file code để đón dữ liệu ở client.

a. Code phía server

  • Khi code cho phía server, kết quả bạn cần đổ về cho client phải là 1 khối text gồm nhiều dòng chữ. Dòng bắt đầu bằng chữ id là id của sự kiện [giống như mã định danh]. Dòng bắt đầu bằng chữ retry là thời khoản [số miligiây] để browser lên lại server lấy tiếp thông tin. Dòng bắt đầu bằng chữ data là dữ liệu chính đổ về cho browser.  Mỗi dòng text kết thúc bằng \n riêng dòng cuối kết thúc bằng \n\n
  • Code phía server: bạn phải có dòng lệnh không cho browser cache nhé, kẻo nó không request lên server là gay.
  • Code phía server cần báo cho browser kiểu dữ liệu đổ về là text/event-tream

b. Code phía client

  • Code phía client là code javascript để đón dữ liệu từ server và hiện ra trong nội dung trang.
  • Client [tức browser] sẽ nhìn vào giá trị của biến retry đổ về từ server để biết thời khoảng request lại server để lấy dữ liệu.
  • Code ở phía client có thể lấy id của sự kiện và nội dung data đổ về tử server theo cú pháp event.lastEventId  và event.data

2. Chuẩn bị trước khi thử sử dụng sse trong php

Việc chuẩn bị bao gồm tạo folder website tạo database, tạo table và chèn dữ liệu vào table. Sau đó chúng ta mới đến mục tiêu chính ở phía sau là sử dụng sse trong php.

a. Tạo folder

Trong htdocs, tạo folder sse để thực tập thử. Chút nữa các file tạo ra sẽ đặt trong đây nhé.

b.  Tạo database và table

  • Bạn vào phpMyadmin và tạo datavase có tên là sse, nếu có rồi thì khỏi tạo nữa.
  • Tiếp tục, trong database sse, bạn tạo table tuongthuat như sau
CREATE TABLE `tuongthuat` [
  `id` bigint[20] NOT NULL,
  `phut` varchar[10] NOT NULL,
  `noidung` varchar[2000] NOT NULL,
  `thoidiem` timestamp NOT NULL DEFAULT current_timestamp[]
] ENGINE=MyISAM DEFAULT CHARSET=utf8;
ALTER TABLE `tuongthuat` ADD PRIMARY KEY [`id`];
ALTER TABLE `tuongthuat` MODIFY `id` bigint[20] NOT NULL AUTO_INCREMENT;

c.  Chèn dữ liệu vào db

  • Tạo file sse\chentuongthuat.php
  • Code trong file vừa tạo:


 
 
   
      Phút:          
   
      Nội dung:          
    LƯU
  • Test: Mở trình duyệt gõ //localhost/sse/chentuongthuat.php sẽ thấy như hình.

Như vậy, chúng ta mới tạo xong form để chèn dữ liệu, bây giờ nhắp nút Lưu cũng chưa có tác dụng gì đâu, code tiếp nhe.

  • Ở đầu trang, code để lưu dữ liệu vào table tuongthuat
  • Code trên giúp lưu dữ liệu vào db rồi đó, nhưng khoan test, bạn cần hiện thông báo rồi test nhé. Đoạn code sau viết ngay sau mở đầu của tag form [trước tag
    ], mục đích là để hiện thông báo đã lưu thông tin vào db xong.

Chủ Đề