2011-01-11 27 views
62

Tôi đang viết một Ứng dụng JavaScript phải nhận một lượng lớn dữ liệu từ những người dùng khác. Nó không quan trọng nếu một số dữ liệu này bị mất. Có cách nào để sử dụng JavaScript WebSockets với UDP thay vì TCP không?Các WebSockets JavaScript với UDP?

Trả lời

45

Không, không thể có giao tiếp UDP trong JavaScript. Lấy làm tiếc.

+15

Crap, tôi hy vọng họ sẽ thêm điều này trong tương lai. :( –

+1

@TimeMachine Họ sẽ không WebSockets được xây dựng trên đầu trang của TCP, bắt tay ban đầu cũng được thực hiện để nó được công nhận như là một yêu cầu nâng cấp HTTP bởi các máy chủ web.Bạn có thể đọc thêm về các giao thức trong dự thảo mới nhất: http: //tools.ietf.org/html/draft-abarth-thewebsocketprotocol-00 –

+2

Và còn node.js thì sao? – VansFannel

6

Giao thức WebSockets chỉ qua TCP như được xác định hiện tại.

Bạn có thể thực hiện UDP with Flash nếu bạn sẵn sàng sử dụng máy chủ RTMFP (Giao thức luồng tin nhắn thời gian thực).

+2

Flash sắp hết. 2020 – Andrew

-3

Tôi nghĩ bạn có thể tận dụng công nghệ Silverliht 4. Bạn có thể tạo một ứng dụng Silverlight 4 để giao tiếp với máy chủ và sau đó đính kèm nó vào trang html. Sau đó, JavaScript của bạn có thể xây dựng các kết nối TCP thông qua ứng dụng Silverlight 4!

+0

Tôi nghĩ rằng đó là rất khó cho một ứng dụng web được sử dụng bởi các nhà phát triển Mac và iPhone. ^^ ' –

+2

Ngoài ra, Silverlight không hỗ trợ UDP "thực", chỉ UDP đa hướng và chỉ hoạt động trên mạng LAN. –

+1

Câu hỏi đặt ra là cho UDP không TCP – markmnl

1

Nếu câu hỏi này vẫn đang chờ xử lý: Tôi đã tìm thấy một dự án có tên là JNEXT và có một ví dụ sử dụng UDP. Bản thân dự án dường như bị tạm dừng nhưng ít nhất trong Firefox nó hoạt động (nó không hoạt động với Chrome và Opera). Có thể là đáng để tìm kiếm.

+2

Nếu tôi muốn người dùng cài đặt phần mềm, tôi thậm chí có thể sử dụng Flash tốt hơn. –

+0

Flash không cung cấp cho bạn UDP. –

-7

Bạn có thể viết máy chủ WebSocket để phục vụ như proxy/bridge giữa TCP/UDP.

+16

Điều đó sẽ đánh bại toàn bộ mục đích của UDP. –

44

Có vẻ như những gì bạn đang chờ đợi là WebRTC đang hoạt động theo cách thông qua quy trình tiêu chuẩn. WebSockets, như những người khác đã chỉ ra, chạy trên TCP như là kết quả của việc bắt đầu với một nâng cấp HTTP.

+4

WebRTC trông gần như tuyệt vời, nhưng theo như tôi có thể nói bạn phải sử dụng RTCDataChannel để truyền dữ liệu và sử dụng SCTP không hỗ trợ giao hàng không đáng tin cậy (cần thiết cho trò chơi). Chỉnh sửa: Hủy bỏ điều đó, nó hỗ trợ một chế độ không đáng tin cậy. [Bài viết tốt ở đây] (http://www.html5rocks.com/en/tutorials/webrtc/datachannels/) – Timmmm

+0

Không chỉ vậy, nhưng đó là Peer 2 Peer, không tuyệt vời cho một máy chủ độc tài. –

+7

Không có lý do nào khiến một trong những "đồng nghiệp" không thể là máy chủ của bạn. – Chad

-7

Bạn có thể sử dụng ứng dụng Autohotkey, nhận gói UDP và hiển thị Internet Explorer và cuối cùng, gửi nội dung điền một html TEXTAREA và mô phỏng nhấp vào một nút BUTTON để kích hoạt một sự kiện xử lý dữ liệu UDP. Tôi đã làm nó trong dự án của tôi XPlane Assistant.

2

Âm thanh như các câu hỏi có nghĩa là cho UDP client-side, nhưng kể từ khi tôi đã kết thúc ở đây ...

Bạn có thể làm UDP trong JavaScript trên máy chủ bằng cách sử dụng node.jsdgram package.

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