Điều khiển máy tính từ xa thông qua trình duyệt

Khoảng sáu tháng trước, tôi quyết định tạo một chương trình điều khiển máy tính thông qua trình duyệt. Tôi bắt đầu với một máy chủ HTTP một socket đơn giản để truyền hình ảnh đến trình duyệt và nhận tọa độ con trỏ để điều khiển.

Ở một giai đoạn nhất định, tôi nhận ra rằng công nghệ WebRTC rất phù hợp cho những mục đích này. Trình duyệt Chrome có giải pháp như vậy, nó được cài đặt thông qua tiện ích mở rộng. Nhưng tôi muốn tạo một chương trình nhẹ có thể hoạt động mà không cần cài đặt.

Đầu tiên tôi thử sử dụng thư viện do Google cung cấp, nhưng sau khi biên dịch nó chiếm tới 500MB. Tôi gần như phải triển khai toàn bộ ngăn xếp WebRTC từ đầu và cố gắng đưa mọi thứ vào một tệp exe 2.5 MB. Một người bạn đã giúp đỡ về giao diện trong JS và đây là kết quả cuối cùng của chúng tôi.

Hãy chạy chương trình:

Điều khiển máy tính từ xa thông qua trình duyệt
Mở liên kết trong tab trình duyệt và có toàn quyền truy cập vào màn hình nền:

Điều khiển máy tính từ xa thông qua trình duyệt
Một hình ảnh động ngắn về quá trình thiết lập kết nối:

Điều khiển máy tính từ xa thông qua trình duyệt
Được hỗ trợ bởi Chrome, Firefox, Safari, Opera.

Có thể truyền âm thanh, cuộc gọi âm thanh, quản lý clipboard, truyền tập tin và gọi phím nóng.

Khi làm việc với chương trình, tôi đã phải nghiên cứu hàng chục RFC và hiểu rằng không có đủ thông tin trên Internet về hoạt động của giao thức WebRTC. Tôi muốn viết một bài về các công nghệ được sử dụng trong đó, tôi muốn tìm hiểu những câu hỏi nào sau đây được cộng đồng quan tâm:

  • Giao thức mô tả dữ liệu truyền phát SDP
  • Các ứng cử viên ICE và thiết lập kết nối giữa hai điểm, máy chủ STUN và TURN
  • Kết nối DTLS và chuyển khóa sang phiên RTP
  • Giao thức RTP và RTСP có mã hóa để truyền dữ liệu đa phương tiện
  • Chuyển H264, VP8 và Opus qua RTP
  • Kết nối SCTP để truyền dữ liệu nhị phân

Nguồn: www.habr.com

Thêm một lời nhận xét