2011-01-04 32 views
9

Được rồi vì vậy tôi vừa thử lớp WebSocket mới trong HTML 5 và rất vui vì chúng tồn tại; tuy nhiên, tôi không thấy họ xứng đáng hơn AJAX như thế nào khi họ vẫn bắt đầu cuộc gọi HTTP và là không phải như ổ cắm thông thường. Đó là lý do tại sao tôi hỏi ở đây.JSS HTML5 WebSocket: Kết nối không có cuộc gọi HTTP

Có cách nào với lớp học WebSocket của HTML 5 để kết nối với ổ cắm nghe mà không gửi dữ liệu HTTP không? Hiện tại với trình xây dựng TCP/IP, nó hiển thị tất cả các tiêu đề crap mà tôi không muốn (vì tôi muốn kết nối với các máy chủ POP3/IMAP mà không có những thứ như Flash bridge hoặc Comet).

Có thể?

Output từ kết nối:

Listening for connections...Connected 
GET/HTTP/1.1 
Upgrade: WebSocket 
Connection: Upgrade 
Host: localhost:666 
Origin: null 
Sec-WebSocket-Key1: 2 987_390VNw60yi9 
Sec-WebSocket-Key2: ~196 Y p 5 P67 428 ? 
+0

Chỉ cần cập nhật; W3C dường như là một API socket * tinh khiết * TCP/UDP, mặc dù tôi chắc chắn rằng nó sẽ mất vài năm trước khi chúng ta thấy bất kỳ loại chức năng nào cho nó. – Qix

Trả lời

5

số Khi kết nối được thiết lập, bạn có một ổ cắm đúng. Nhưng bạn nói đúng là nó yêu cầu hỗ trợ máy chủ đặc biệt. Vì vậy, nó sẽ không cho phép bạn kết nối với một máy chủ POP hoặc IMAP chưa được sửa đổi.

Họ đã chọn thiết kế đó (cơ chế Nâng cấp) để bạn có thể dễ dàng có một máy chủ lắng nghe các kết nối WebSocket cũng như các yêu cầu HTTP thực sự.

vẫn là sự khác biệt lớn so với AJAX và COMET. Bạn có thể sử dụng WebSockets để có giao tiếp song công thực sự giữa máy chủ và máy khách. Các API trình duyệt trước đó không cung cấp điều đó, buộc mọi người phải sử dụng nhiều công việc khác nhau (chẳng hạn như các yêu cầu AJAX lặp đi lặp lại, khung vĩnh viễn của COMET và các thứ khác).

+0

Vì vậy, nó khá nhiều AJAX mà không đóng? Giống như một khung hình mãi mãi kết hợp với AJAX. Tiện lợi, nhưng không quá tiện lợi cùng một lúc. Cảm ơn bạn đã cung cấp thông tin! – Qix

+0

nó không hoàn toàn là một ổ cắm TCP tinh khiết sau khi bắt tay vì có thêm khung cho mỗi khung hình. @ Di-0xide, nó thực sự giống như một ổ cắm với một cái bắt tay giống như HTTP (và một số khung hình tối thiểu). Cái bắt tay này giúp dễ dàng thêm hỗ trợ WebSockets vào máy chủ web và proxy, nhưng đó là tất cả. Nó không phải là một yêu cầu HTTP, đó là một cái bắt tay WebSockets trông giống như HTTP. – kanaka

+0

@kanaka, tôi không ngụ ý ngụ ý nó là một ổ cắm TCP. Có nhiều loại khác (UDP, nguyên, tên miền, v.v.). WebSocket là một cái khác. –

Các vấn đề liên quan