Bản dịch này chưa hoàn thành. Xin hãy giúp dịch bài viết này từ tiếng Anh.

Các WebSocket API là một công nghệ tiên tiến mà nó có thể tạo ra một phiên giao tiếp tương tác hai chiểu giữa trình duyệt của người dùng và một máy chủ (server). Với API này, bạn có thể gửi những thông báo tới một máy chủ và nhận những phản hồi (response) hướng sự kiện mà không phải yêu cầu máy chủ để có một câu trả lời.

Chú ý: Trong khi một kết nối Websocket có một số tính năng hơi giống với các socket kiểu Unix chuẩn, Nhưng chúng lại không có liên quan gì với nhau.

Giao diện (Interfaces)

WebSocket
Một giao diện cơ bản cho việc kết nối tới một máy chủ Websocket và sau đó là việc gửi và nhận dữ liệu trên kết nối đó.
CloseEvent
Sự kiện được gửi đi từ một đối tượng Websocket khi kết nối được đóng lại.
MessageEvent
Sự kiện được gửi bởi đối tượng Websocket khi một thông điệp được nhận từ một máy chủ.

Công cụ

  • HumbleNet: Một thư viện kết nối mạng đa nền tảng làm việc trong trình duyệt. Nó bao gồm một trình bao bọc Websocket và WebRTC viết bằng C mà khái quát những sự khác biệt trên trình duyệt, tạo sự thuận lợi cho việc phát triển các game và ứng dụng với kết nối nhiều người dùng cùng lúc.
  • µWebSockets: Triển khai máy chủ Websocket và ứng dụng phía người dùng với khả năng mở rộng cao hơn cho nền tảng C++ 11 và NodeJS.
  • ClusterWS:  Một Framework nhẹ, nhanh và mạnh mẽ dể xây dựng các ứng dụng Websocket có khả năng mở rộng trên nền tảng NodeJS.
  • Socket.IO: Một thư viện chuyển đổi giao thức bên thứ ba dựa trên nền tảng long polling/WebSocket cho Node.js.
  • SocketCluster: Một pub/sub WebSocket framework cho Node.js với sự tập trung vào khả năng mở rộng.
  • WebSocket-Node: Một triển khai các API máy chủ WebSocket cho Node.js.
  • Total.js: Một framework làm ứng dụng web cho Node.js (Ví dụ: WebSocket chat)
  • Faye: Một kết nối WebSocket (kết nối hai chiều) và EventSource (Kết nối một chiều) cho ứng dụng và máy chủ Node.js.
  • SignalR: SignalR sẽ sử dụng WebSockets bên dưới dụng vỏ bọc khi nó khả dụng, và dự phòng chuyển đổi với các kí thuật và công nghệ khác khi nó không còn khả dụng, trong khi mã nguồn ứng dụng của bạn vẫn được giữ nguyên.
  • Caddy: Máy chủ web có khả năng ủy quyền các lệnh tùy ý (vào/ra) như một websocket.
  • ws: Một thư viện websocket phổ biến cho cả máy chủ và client trên Node.js.
  • jsonrpc-bidirectional: Asynchronous RPC which, trên một kết nối đơn,có thể có những tính năng đã xuất trên cả máy chủ và máy khách cùng lúc (máy khách gọi máy chủ hoặc ngược lại).

Xem thêm

Khả năng tương thích với các trình duyệt

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Tính năng Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Version -76 support 6 No support 4.0 (2.0) No support 11.00 (disabled) 5.0.1
Protocol version 7 support No support No support 6.0 (6.0)
Moz
No support No support No support
Protocol version 10 support 14 No support 7.0 (7.0)
Moz
HTML5 Labs ? ?
Standard - RFC 6455 Support 43 14 48.0 (48.0) 10 12.10 6.0
Usable in Workers (Yes) (Yes) 37.0 (37.0) ? ? ?
Feature Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Version -76 support ? No support ? ? ? ?
Protocol version 7 support ? No support ? ? ? ?
Protocol version 8 support (IETF draft 10) ? No support 7.0 (7.0) ? ? ?
Standard - RFC 6455 Support 4.4 (Yes) 11.0 (11.0) ? 12.10 6.0
Usable in Workers (Yes) (Yes) 37.0 (37.0) ? ? ?

Chú ý về Gecko

Việc hỗ trợ Websocket trên Firefox đang được tiếp tục với việc theo dõi sư thay đổi của đặc tả Websocket. Firefox 6 triển khai phiên bản 7 của các giao thức cơ bản, trong khi Firefox 7 triển khai phiên bản 8 (như mô tả bởi IETF draft 10). Firefox di đông đón nhận sự hỗ trợ WebSocket từ phiên bản Firefox di động 7.0.

Gecko 6.0

Trước Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), Đã có, không chính xác, một đối tượng WebSocket mà một số trang đã nghĩ rằng đó là việc bao hàm các dịch vụ WebSocket không có tiền tố; Đối tượng này vừa được đổi tên thành MozWebSocket.

Gecko 7.0

Bắt đầu từ phiên bản Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4), thông số network.websocket.max-connections được sử dụng để xác định số lượng kết nối websocket tối đa có thể được mở trong một khoảng thời gian nhất định. Giá trị mặc định là 200.

Gecko 8.0

Bắt đầu từ phiên bản Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), phần mở rộng của luồng deflate-stream tới giao thức WebSocket đã bị vô hiệu hóa, bởi vì nó không còn được dùng trong các bản đặc tả. Điều này giải quyết vấn đề không tương thích giữa một số trang web.

Gecko 11.0

Trước phiên bản Gecko 11.0, Cả thông điệp đến và đi đều bị giới hạn ở kích thức 16MB. Bây giờ chúng có thể lên đến kích thước 2GB. Chú ý, tuy vậy vẫn còn tùy thuộc vào kích thước bộ nhớ (đặc biệt là trên thiết bị di động) làm cho nó chỉ là kích thước lý thuyết không phải là kích thước thực tế. Trong thực tế, việc truyền các dữ liệu kích thước như vậy sẽ thất bại nếu thiết bị không có đủ bộ nhớ.

Ngoài ra, ArrayBuffer hỗ trợ cho việc gửi và nhận dữ liệu nhị phân đã được triển khai.

Kể từ phiên bản Gecko 11.0, API Websocket không còn được thêm tiền tố nữa.

Document Tags and Contributors

Những người đóng góp cho trang này: trantuan94, oxygen
Cập nhật lần cuối bởi: trantuan94,