So sánh 2 package phổ biến khi sử dụng webrtc: peerjs và simple-peer
webrtc
4
White

Lộc lv viết ngày 28/09/2020

Mở đầu

Chú ý:

  • bài viết yêu cầu người đọc phải có hiểu biết cơ bản về WebRTC (Web Real-Time Communication).
  • số liệu trong bài viết là tại thời điểm viết bài.

Khi sử dụng webrtc, để tránh những phiền hà và dễ sử dụng, người ta tạo ra những package bao bên ngoài những API native webrtc của trình duyệt.

Vậy tại sao lại chỉ có peerjs vs simple-peer, trong khi còn những package khác?

Dựa vào tìm hiểu của bản bân thì đã có khoảng 4 package phổ biến khi tham khảo tại đây

  • easyrtc thì dường như đã không còn open source và có repository khác tại đây với tên open-easyrtc. Số lượng star khá ít (119) nên tôi đánh giá là không phổ biến.

  • SimpleWebRTC thì như thông báo ở phần README thì đã không còn được bảo trì ở thời điểm hiện tại nữa.

  • peerjs thì có số star là 7.9k.

  • simple-peer thì có số star là 4.5k.

Vậy thì có nên chỉ đơn thuần dựa vào số star trên github để sử dụng peerjs luôn không?

npm trending download

https://www.npmtrends.com/easyrtc-vs-peerjs-vs-simple-peer-vs-simplewebrtc

simple-peer có số lượng download nhiều hơn gần 8 lần!

Điều đó chứng tỏ nó đã được thực sự sử dụng nhiều hơn.

issues

tại thời điểm 2020/07/23:

https://github.com/feross/simple-peer/issues

simple-peer: 44 issues is open

https://github.com/peers/peerjs/issues

peerjs: 74 issues is open

Basic issues

peerjs:

https://github.com/peers/peerjs/issues/630

Mình đã theo dõi issue cơ bản này khá lâu, cho tới hiện tại là tháng 9 mà issue này đã có từ tháng 3.

Theo đánh giá bản thân thì issue này khá cơ bản mà mãi chưa thấy chủ repo support, chứng tỏ dự án không được thường xuyên maintain.

Basic difference

simple-peer

Sử dụng 1 object từ mỗi peer để khởi tạo kết nối bao gồm token định danh... Còn việc cho 2 peer trao đổi object đó như thế nào thì tùy bạn.

Hỗ trợ (hướng dẫn) cách kết nối 2 peer trở lênquản lý việc sử dụng bộ nhớ.

peerjs

Cần 1 peerjs-server mà package này đã tạo sẵn (khác với signaling server, turn, stun server). Điểm bất lợi là bạn phải không được tự do chọn cách trao đổi như simple-peer.

Những ai đang sử dụng

simple-peer có chỉ ra các tổ chứ đang dùng nó còn peerjs thì không.

Trong đó có WebTorrent - Streaming torrent client in the browser. Torrent thì khá nổi tiếng rồi đúng không :D


Flow mình trên github tại đây để làm màu nhé :D

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Lộc lv

3 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
1 0
Danh sách các VPS giá rẻ Trang chuyên so sánh VPS (tuy nhiên không có lựa chọn so sánh location là Tokyo/Osaka) thì vultr có hiệu năng cao nhất...
Lộc lv viết 2 tháng trước
1 0
White
1 1
Chú ý: Bài viết phù hợp với các bạn đã biết về React Native. Bài viết dựa trên kinh nghiệm còn hạn chế của bản thân, có cách nào giải quyến vấn ...
Lộc lv viết 2 tháng trước
1 1
Bài viết liên quan
White
32 7
Hi các bạn, cơ bản là hiện giờ mình đang làm trong một dự án sử dụng WebRTC và mình muốn chia sẻ với mọi nguời những gì mình biết và chúng ta có th...
khoatd92 viết hơn 4 năm trước
32 7
White
16 7
Tiếp tục serial về WebRTC. (Link) Hôm nay mình sẽ giới thiệu về cơ chế hoạt động của WebRTC. Cần những gì để tạo được một application WebRTC. Như ...
khoatd92 viết hơn 4 năm trước
16 7
White
14 14
Về cơ bản, TURN là phần mở rộng từ STUN, vì vậy, khi phần mở rộng này không được sử dụng , thì chúng ta vẫn kết nối được thông qua STUN. Trong lúc...
Phan Huỳnh Gia Bảo viết hơn 5 năm trước
14 14
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
3 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!