Websocket là gì ?

Chúng tôi rất vui mừng được chia sẻ kiến thức sâu sắc về từ khóa Websocket la gi và hy vọng rằng nó sẽ hữu ích cho bạn đọc. Bài viết tập trung trình bày ý nghĩa, vai trò và ứng dụng của từ khóa này trong việc tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Chúng tôi cung cấp các phương pháp tìm kiếm, phân tích và lựa chọn từ khóa phù hợp, cùng với các chiến lược và công cụ hữu ích. Hy vọng rằng thông tin mà chúng tôi chia sẻ sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Xin chân thành cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog của chúng tôi để cập nhật những kiến thức mới nhất.

WebSoket là công nghệ tương trợ giao tiếp hai chiều giữa client và server bằng phương pháp sử dụng một TCP socket để tạo một kết nối hiệu quả và ít tốn kém. Mặc dù được thiết kế để chuyên sử dụng cho những ứng dụng web, lập trình viên vẫn có thể đưa chúng vào bất kì loại ứng dụng nào.

Bạn Đang Xem: Websocket là gì ?

  • WebSockets mới xuất hiện trong HTML5, là một kỹ thuật Reverse Ajax. WebSockets được chấp nhận các kênh giao tiếp song song hai chiều và hiện đã được tương trợ trong nhiều trình duyệt (Firefox, Google Chrome và Safari). Kết nối được mở thông qua một HTTP request (yêu cầu HTTP), được gọi là liên kết WebSockets với những header đặc biệt quan trọng. Kết nối được duy trì để bạn cũng có thể viết và nhận tài liệu bằng JavaScript như khi chúng ta đang sử dụng một TCP socket thuần tuý.

  • Tài liệu truyền tải thông qua giao thức HTTP (thường dùng với kĩ thuật Ajax) chứa nhiều tài liệu không cấp thiết trong phần header. Một header request/response của HTTP có kích thước khoảng chừng 871 byte, trong những lúc với WebSocket, kích thước này chỉ là 2 byte (sau khoản thời gian đã kết nối). Vậy giả sử bạn làm một ứng dụng game có thể tới 10,000 người chơi đăng nhập cùng lúc, và mỗi giây họ sẽ gửi/nhận tài liệu từ server. Hãy so sánh lượng tài liệu header mà giao thức HTTP và WebSocket trong mỗi giây:

  • HTTP: 871 x 10,000 = 8,710,000 bytes = 69,680,000 bits per second (66 Mbps)

  • Xem Thêm : PHNOM PENH – THỦ ĐÔ CỦA CAMPUCHIA, NƠI LÝ TƯỞNG ĐỂ KHÁM PHÁ ĐẤT NƯỚC NÀY

    WebSocket: 2 x 10,000 = 20,000 bytes = 160,000 bits per second (0.153 Kbps) Như bạn thấy chỉ riêng phần header thôi đã và đang chiếm một phần lưu lượng đáng kể với giao thức HTTP truyền thống.

Giao thức bắt tay của WebSocket

Để thực hiện kết nối, client phải gửi một WebSocket handshake request đến server. Server sẽ gửi trả lại WebSocket handshake response như phía dưới:

Client request:

GET /mychat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== Sec-WebSocket-Protocol: chat Sec-WebSocket-Version: 13 Origin: http://example.com

Server response:(Server Architecture)

Xem Thêm : Danh mục mã chương, loại khoản, tiểu mục nộp thuế

HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=

Để xác nhận việc kết nối, client sẽ gửi một giá trị Sec-WebSocket-Key được mã hóa bằng Based64 đến server. Sau đó bên server sẽ thực hiện: – Nối thêm chuỗi nhất thiết là “258EAFA5-E914-47DA-95CA-C5AB0DC85B11″ vào Sec-WebSocket-Key để được chuỗi mới là “x3JJHMbDL1EzLkh9GBhXDw==258EAFA5-E914-47DA-95CA-C5AB0DC85B11″. – Thực hiện mã hóa SHA-1 chuỗi trên để được “1d29ab734b0c9585240069a6e4e3e91b61da1969″. – Mã hóa kết quả vừa nhận được bằng Base64 để được “HSmrc0sMlYUkAGmm5OPpG2HaGWk=”. – Gửi response lại client kèm với giá trị Sec-WebSocket-Accept đấy là chuỗi kết quả vừa tạo ra.

Client sẽ kiểm tra status code (phải bằng 101) và Sec-WebSocket-Accept xem có đúng với kết quả mong đợi không và thực hiện kết nối.

Ưu điểm

  • WebSockets cung cấp khả năng giao tiếp hai chiều mạnh mẽ, có độ trễ thấp và dễ xử lý lỗi. Không cần thiết phải có nhiều kết nối như phương pháp Comet long-polling và cũng không có những nhược điểm như Comet streaming.
  • API cũng rất dễ sử dụng trực tiếp mà không cần bất kỳ các tầng bổ sung nào, so với Comet, thường yên cầu một thư viện tốt để xử lý kết nối lại, thời kì chờ timeout, các Ajax request (yêu cầu Ajax), các tin báo nhận và các dạng truyền tải tùy chọn khác nhau (Ajax long-polling và jsonp polling).

Nhược điểm

Những nhược điểm của WebSockets gồm có:

  • Nó là một đặc tả mới của HTML5, nên nó vẫn không được tất cả những trình duyệt tương trợ.
  • Không có phạm vi yêu cầu nào. Do WebSocket là một TCP socket chứ không phải là HTTP request, nên rất khó sử dụng các dịch vụ có phạm vi-yêu cầu, như SessionInViewFilter của Hibernate. Hibernate là một framework kinh điển cung cấp một bộ lọc xung quanh một HTTP request. Khi mở màn một request, nó sẽ thiết lập một contest (chứa các transaction và liên kết JDBC) được ràng buộc với luồng request. Khi request đó kết thúc, bộ lọc hủy bỏ contest này.

You May Also Like

About the Author: v1000