Hãy tưởng tượng tôi muốn tạo trò chơi nhiều người chơi trong thời gian thực, với HTML5 (máy khách) và node.js (máy chủ).WebRTC là đúng? (trò chơi nhiều người chơi trong thời gian thực)
Tôi cần truyền dữ liệu rất nhanh từ máy chủ đến máy khách và ngược lại.
Trong ứng dụng gốc, tôi sẽ sử dụng UDP
để có nhiều dữ liệu nhất (vị trí trình phát, ...), vì nó nhanh hơn TCP
và không quan trọng khi bị mất.
Trong HTML5
Tôi có thể (chỉ) sử dụng WebSockets
. WebSockets là trên đầu trang của TCP và do đó không đủ nhanh cho một hiệu suất tốt.
Tôi đã nghe nói về WebRTC
, nhưng tôi không biết đây có phải là giải pháp cho vấn đề này hay không.
Có ai có kinh nghiệm với nó không?
(Tôi biết, rằng WebRT vẫn không được hỗ trợ cho trình duyệt nhất, nhưng điều đó không quan trọng với tôi.)
Bạn có chắc chắn rằng các ổ cắm web quá chậm đối với trường hợp sử dụng của mình không? Một ổ cắm tcp được mở trong suốt thời gian phiên websocket của bạn, do đó bạn không phải lo lắng về chi phí kết nối cho mỗi thư. – simonc
TCP: Phân phối tin nhắn đáng tin cậy; tất cả dữ liệu được thừa nhận Việc phân phối tất cả dữ liệu được quản lý và dữ liệu bị mất được truyền lại tự động. UDP: Không đáng tin cậy, phân phối nỗ lực tốt nhất mà không có xác nhận Vì vậy, TCP chỉ đơn giản là kỹ thuật sai đối với trường hợp sử dụng này. – appsthatmatter
Hãy thử thực hiện nó bằng cách sử dụng WebSockets và đo xem nó có thực sự quá chậm (không cần phải nói, trừu tượng việc triển khai vận tải của bạn để nếu WebSockets không thành công, bạn có thể sử dụng cái gì khác mà không cần tháo nhiều mã). Ngay bây giờ bạn đang tối ưu hóa sớm. – ebohlman