2013-07-11 39 views
13

Có thể sử dụng Kênh dữ liệu WebRTC trên Node.js theo cách bắt chước chức năng (và tốt hơn là API) của Socket.io (WebSockets) ngoại trừ sử dụng UDP không?Máy chủ kênh dữ liệu WebRTC cho khách hàng Giao tiếp UDP

Về bản chất, tôi muốn có một máy chủ đang chạy Node.js mà trình duyệt khách hàng có thể thiết lập kết nối UDP hai chiều song song hoàn toàn thông qua JavaScript.

Trả lời

8

Có một mô-đun WebRTC để Node.js: https://js-platform.github.io/node-webrtc/

Quá trình cài đặt có thể được thực sự cồng kềnh (để nói rằng ít nhất) nhưng nếu bạn thành công bạn sẽ có thể để làm cho hành máy chủ Node.js bạn như là một WebRTC ngang hàng như trình duyệt. Bằng cách này, bạn có thể mở Kênh dữ liệu giữa trình duyệt và máy chủ node.js của mình.

Chúng tôi có điều này được sử dụng trong dự án nghiên cứu của chúng tôi để đánh giá các đặc tính hiệu suất.

+0

Có giao diện để kết nối máy chủ node.js với nhiều trình duyệt của trình duyệt và xử lý chúng tương tự như cách nhiều khách hàng websocket được xử lý trong Socket.io? – Willem

+1

Có lẽ bạn có thể sử dụng một trong các trình bao bọc JS WebRTC. Vấn đề với các trình bao bọc như webrtc.io hoặc orca.js là chúng được xây dựng để được sử dụng trên các trình duyệt, do đó bạn có thể sẽ phải thích ứng với chúng để được sử dụng ở phía máy chủ. – Makkes

+0

Vì vậy, các trình bao bọc này cho phép ứng dụng khách trình duyệt hoạt động như một điểm kết thúc trong giao tiếp với nhiều trình duyệt khác? – Willem

4

Có, trên lý thuyết bạn có thể thực hiện việc này. Tuy nhiên, bạn sẽ cần một mô-đun nút hỗ trợ các kênh dữ liệu WebRTC, để bạn có thể kết nối với nó giống như bất kỳ mạng ngang hàng nào khác. Thật không may, quét qua các current modules, tôi không thấy một trong đó thực hiện các kênh dữ liệu.

Điều khác cần lưu ý là các kênh dữ liệu WebRTC có thể được định cấu hình cho reliability modes khác với chế độ đáng tin cậy đang được triển khai với SCTP (FirefoxChrome).

Khi thử nghiệm kênh dữ liệu, tôi khuyên bạn nên sử dụng Firefox vì công việc WebRTC bị phân tách sao cho Chrome ban đầu tập trung vào PeerConnection và Firefox trên DataChannel (vì vậy Firefox vẫn đang tiến hành triển khai DataChannel).

+0

Cảm ơn, điều đó đã xác nhận sự nghi ngờ của tôi. Tôi hy vọng ai đó tạo ra một mô-đun bắt chước API của Websockets với sự hỗ trợ cho nhiều khách hàng được kết nối. – Willem

+1

Tôi thực sự quan tâm nhất đến chế độ không đáng tin cậy (0 lần truyền lại). WebRTC có hỗ trợ điều này thông qua SCTP hay cái gì khác không? – Willem

+1

Tôi nghĩ rằng chế độ không đáng tin cậy ban đầu được xây dựng trên [RTP trong Chrome] (https://code.google.com/p/webrtc/issues/detail?id=1494), nhưng mọi thứ sẽ [cuối cùng được dựa trên SCTP] (https://code.google.com/p/webrtc/issues/detail?id=1430). Thư viện SCTP mà Mozilla sử dụng với kênh dữ liệu ở đây: https://code.google.com/p/sctp-refimpl/ –

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