Bỏ qua để đến nội dung

SSE (Server-Sent Events)

Server-Sent Events là một luồng HTTP một chiều: máy chủ đẩy, client lắng nghe. Restorm biến nó thành một loại yêu cầu đầy đủ.

Nhấp chuột phải trong cây ▸ Thêm ▸ Yêu cầu SSE.

Một tab SSE đang kết nối: ở bên phải, mỗi sự kiện nhận được đều hiện ra kèm dấu thời gian, tên của nó (“ping”) và tải trọng (một số thứ tự).

TrườngVai trò
URLĐiểm vào của luồng
HeaderCác header của yêu cầu mở kết nối — phần xác thực đi qua đây
Định danh sự kiện cuốiGiá trị khởi tạo cho header Last-Event-ID, chỉ được gửi ở lần kết nối đầu tiên

Restorm tuân theo đặc tả EventSource: nó phân tích các trường event:, data:, id:retry:, rồi hiển thị mỗi sự kiện nhận được kèm dấu thời gian, tên và tải trọng của nó — một cú nhấp lên một sự kiện sẽ mở ra toàn bộ nội dung. Còn định danh thì được ghi nhớ để phục vụ việc kết nối lại.

Khi bị đứt kết nối, lần kết nối lại sẽ tự động gửi lại định danh cuối cùng đã nhận được trong Last-Event-ID — đây chính là thứ cho phép máy chủ tiếp tục từ chỗ nó đang dở.

Luồng này chỉ để nhận: không có gì để gửi khi kết nối đã mở.

Hai hành động: Kết nối SSE (đầu ra connectedmessage, một lần phát cho mỗi sự kiện nhận được) và Đóng kết nối SSE. Xem Kết nối và luồng.

Mô hình thường dùng: mở luồng, kích hoạt hành động nghiệp vụ bằng một lời gọi HTTP, rồi dùng một khẳng định để kiểm tra rằng sự kiện mong đợi thực sự tới cổng message.

Ba đích: cURL, EventSource của trình duyệt, Python (requests ở chế độ luồng).