Skip to main content

LaserStream WebSocket là gì?

LaserStream WebSocket là biến thể sử dụng giao thức WebSocket của LaserStream. Dịch vụ này cung cấp các phương thức đăng ký Solana JSON-RPC tiêu chuẩn (accountSubscribe, programSubscribe, logsSubscribe, signatureSubscribe, slotSubscribe, …) cùng các tiện ích mở rộng dành riêng cho Helius như transactionSubscribe để lọc nâng cao — tất cả đều trên cùng một điểm cuối wss://mainnet.helius-rpc.com hợp nhất và cùng phần phụ trợ LaserStream với sản phẩm gRPC. WebSocket cung cấp kết nối liên tục theo thời gian thực: thay vì liên tục thăm dò “có gì thay đổi không?”, blockchain sẽ thông báo cho bạn ngay khi có sự kiện xảy ra.

Real-Time Updates

Nhận thông báo ngay lập tức khi tài khoản Solana thay đổi, giao dịch diễn ra hoặc khối mới được tạo

Efficient Resource Usage

Sử dụng một kết nối liên tục thay vì thăm dò bằng hàng trăm yêu cầu HTTP

Low Latency

Nhanh hơn WebSocket tiêu chuẩn dựa trên Agave RPC tới 200 ms, do LaserStream cung cấp

Helius Extensions

transactionSubscribe và phiên bản accountSubscribe nâng cao để lọc chuyên sâu trên các phương thức Solana tiêu chuẩn

Điểm cuối

WebSocket — bao gồm cả các phương thức Solana tiêu chuẩn và tiện ích mở rộng dành riêng cho Helius — được cung cấp qua một điểm cuối hợp nhất duy nhất cho mỗi mạng: Mainnet: wss://mainnet.helius-rpc.com/?api-key=<API_KEY> Devnet: wss://devnet.helius-rpc.com/?api-key=<API_KEY>

Gatekeeper (Beta)

Để thử nghiệm dịch vụ WebSocket nhanh nhất của chúng tôi, hãy dùng điểm cuối Gatekeeper (Beta) mới: wss://beta.helius-rpc.com/?api-key=<API_KEY>

Định giá và đo lường mức sử dụng

Mức sử dụng WebSocket được tính là 2 tín dụng cho mỗi 0,1 MB dữ liệu truyền chưa nén. Mở một kết nối tốn 1 tín dụng. Đối với khối lượng công việc lớn trên các gói Professional, Tiện ích bổ sung dữ liệu cung cấp hạn mức dữ liệu hằng tháng (5TB–100TB) với chi phí có thể dự đoán. Có thể áp dụng tiện ích bổ sung dữ liệu cho LaserStream và WebSocket.
Các phương thức dành riêng cho Helius transactionSubscribe và accountSubscribe (với bộ lọc Helius) yêu cầu gói Developer, Business hoặc Professional. Các phương thức Solana tiêu chuẩn như programSubscribe, logsSubscribe và signatureSubscribe có sẵn trên mọi gói.

Khái niệm cốt lõi

Các loại đăng ký

Theo dõi thay đổi đối với các tài khoản cụ thể như số dư ví, tài khoản token hoặc dữ liệu chương trình.Trường hợp sử dụng:
  • Theo dõi số dư ví
  • Giám sát tài khoản token
  • Theo dõi thay đổi trạng thái hợp đồng thông minh
  • Cập nhật quyền sở hữu NFT
Theo dõi mọi tài khoản thuộc sở hữu của một chương trình cụ thể để phát hiện mọi thay đổi.Trường hợp sử dụng:
  • Giám sát giao dịch DEX
  • Theo dõi giao thức DeFi
  • Theo dõi hoạt động trên thị trường NFT
  • Theo dõi thay đổi tài sản trong trò chơi
Nhận thông báo khi các giao dịch cụ thể được xác nhận hoặc khi giao dịch đề cập đến một số tài khoản nhất định.Trường hợp sử dụng:
  • Xác nhận thanh toán
  • Theo dõi trạng thái giao dịch
  • Phê duyệt đa chữ ký
  • Giám sát việc thực thi hợp đồng
Theo dõi tiến trình và tính hoàn tất của blockchain ở cấp độ slot.Trường hợp sử dụng:
  • Ứng dụng trình khám phá khối
  • Giám sát tình trạng mạng
  • Theo dõi cơ chế đồng thuận
  • Phân tích hiệu năng

Các mức cam kết

Hiểu rõ các mức cam kết là yếu tố thiết yếu để xây dựng ứng dụng đáng tin cậy:
Nhanh nhất - Giao dịch đã được trình xác thực xử lý nhưng chưa được xác nhận
  • Độ trễ: ~400ms
  • Rủi ro: Có thể bị loại bỏ hoặc sắp xếp lại
  • Dùng cho: Cập nhật giao diện người dùng theo thời gian thực (cần thận trọng)
Bạn muốn tìm hiểu thêm về các mức cam kết? Hãy đọc bài viết toàn diện trên blog của chúng tôi: Tìm hiểu các mức cam kết của Solana

Các phương thức WebSocket hiện có

Helius hỗ trợ đầy đủ các phương thức đăng ký Solana WebSocket cùng các tiện ích mở rộng dành riêng cho Helius. Tất cả phương thức dùng chung điểm cuối wss://mainnet.helius-rpc.com.

Tiện ích mở rộng của Helius

Hai phương thức cung cấp khả năng lọc phong phú hơn tiêu chuẩn Solana:
  • transactionSubscribe — đăng ký các giao dịch khớp với danh sách tài khoản cần bao gồm/loại trừ/bắt buộc, cờ biểu quyết/thất bại và một chữ ký cụ thể
  • accountSubscribe — Helius bổ sung các bộ lọc nâng cao trên cấu trúc accountSubscribe tiêu chuẩn

Các phương thức Solana tiêu chuẩn

accountSubscribe, blockSubscribe, logsSubscribe, programSubscribe, rootSubscribe, signatureSubscribe, slotSubscribe, slotsUpdatesSubscribe, voteSubscribe và các cặp *Unsubscribe tương ứng.

Complete API Reference

Khám phá toàn bộ hơn 18 phương thức WebSocket. Mỗi phương thức đều có tham số chi tiết, định dạng phản hồi và ví dụ.

Cách triển khai logic kết nối lại

Kết nối WebSocket có thể bị ngắt vì nhiều lý do — sự cố mạng, bảo trì máy chủ hoặc gián đoạn tạm thời. Ứng dụng trong môi trường production phải triển khai logic kết nối lại để bảo đảm độ tin cậy.

Lý do kết nối bị ngắt

  • Sự cố kết nối Internet
  • Chuyển đổi WiFi trên thiết bị di động
  • Tường lửa doanh nghiệp hết thời gian chờ
  • Thay đổi định tuyến của ISP
  • Khoảng thời gian bảo trì theo kế hoạch
  • Khởi động lại bộ cân bằng tải
  • Cập nhật nút RPC
  • Cơ chế bảo vệ tạm thời khi quá tải
  • Tab trình duyệt chuyển sang chạy nền
  • Ứng dụng di động bị tạm dừng
  • Máy tính chuyển sang chế độ ngủ/ngủ đông
  • Tiến trình gặp sự cố hoặc khởi động lại

Phát hiện kết nối bị ngắt

Chiến lược kết nối lại

Kiểm thử logic kết nối lại

Yếu tố thiết yếu cho môi trường production: Việc triển khai logic kết nối lại phù hợp là bắt buộc đối với các ứng dụng trong môi trường production. Kết nối WebSocket sẽ bị ngắt — hãy lập kế hoạch, kiểm thử và giám sát tình trạng này trong môi trường production.

Khắc phục sự cố

Triệu chứng: WebSocket không thể kết nối ngay từ đầuGiải pháp:
  • Xác minh khóa API của bạn chính xác và có đủ tín dụng
  • Kiểm tra định dạng URL của điểm cuối: wss://mainnet.helius-rpc.com?api-key=YOUR_KEY
  • Đảm bảo tường lửa cho phép kết nối WebSocket trên cổng 443
  • Trước tiên, hãy thử bằng một lệnh ping đơn giản để xác minh khả năng kết nối cơ bản
Triệu chứng: Kết nối bị ngắt sau mỗi vài phútGiải pháp:
  • WebSocket có bộ hẹn giờ không hoạt động 10 phút. Gửi ping ít nhất một lần mỗi phút để duy trì kết nối (xem các ví dụ kết nối lại ở trên và Câu hỏi thường gặp về WebSocket)
  • Triển khai nhịp ping/pong phù hợp (được minh họa trong các ví dụ kết nối lại ở trên)
  • Kiểm tra độ ổn định của mạng và cài đặt tường lửa doanh nghiệp
  • Theo dõi số lượng đăng ký — quá nhiều đăng ký có thể gây mất ổn định
  • Xác minh rằng bạn đang xử lý đúng vòng đời kết nối
Triệu chứng: Không nhận được các bản cập nhật đăng ký dự kiếnGiải pháp:
  • Xác minh đăng ký đã được xác nhận (kiểm tra phản hồi)
  • Đảm bảo tài khoản/chương trình bạn đang theo dõi thực sự có hoạt động
  • Theo dõi trạng thái kết nối — bỏ lỡ thông báo thường là dấu hiệu kết nối bị ngắt
Triệu chứng: Truyền thông báo chậm, cập nhật bị trễGiải pháp:
  • Dùng mức cam kết “confirmed” thay cho “finalized”
  • Giảm số lượng đăng ký đang hoạt động
  • Tối ưu hóa logic xử lý thông báo
  • Cân nhắc sử dụng nhiều kết nối để phân phối tải
  • Kiểm tra chất lượng kết nối mạng
Triệu chứng: Mức sử dụng bộ nhớ của ứng dụng tăng dần theo thời gianGiải pháp:
  • Triển khai cơ chế dọn dẹp đăng ký phù hợp
  • Xóa trình lắng nghe sự kiện khi các thành phần bị ngắt kết nối
  • Xóa nhật ký thông báo định kỳ
  • Theo dõi số lượng đăng ký và áp dụng giới hạn
  • Sử dụng tham chiếu yếu cho các hàm callback khi có thể

Di chuyển từ RPC tiêu chuẩn

Nếu hiện đang sử dụng cơ chế thăm dò HTTP, bạn có thể di chuyển sang WebSocket như sau:

Khả năng nâng cao

Đối với ứng dụng cần các tính năng nâng cao hơn nữa, hãy cân nhắc sử dụng LaserStream gRPC:

24-Hour Historical Replay

Truy xuất dữ liệu bị bỏ lỡ khi ứng dụng không hoạt động

Multi-Node Aggregation

Nâng cao độ tin cậy nhờ dữ liệu từ nhiều trình xác thực

Higher Throughput

Xử lý nhiều đăng ký hơn và tốc độ thông báo cao hơn

Enterprise Features

Khả năng giám sát, phân tích và quy trình dữ liệu nâng cao

Bắt đầu

Bạn đã sẵn sàng bắt đầu chưa? Xem Hướng dẫn bắt đầu nhanh với WebSocket để tham khảo các ví dụ thực tế và quy trình triển khai từng bước.

Hướng dẫn

Các bài hướng dẫn từng bước kèm mã có thể chạy nằm trên trang Hướng dẫn LaserStream WebSocket.