.TÌM HIỂU VÀ ỨNG DỤNG WEBRTC ĐỂ TẠO ỨNG DỤNG VIDEO CALL. TS.NGUYỄN HÀ HUY CƯỜNG.

30 140 0
.TÌM HIỂU VÀ ỨNG DỤNG WEBRTC ĐỂ TẠO ỨNG DỤNG VIDEO CALL. TS.NGUYỄN HÀ HUY CƯỜNG.

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG ĐỒ ÁN CƠ SỞ ĐỀ TÀI: Tìm hiểu ứng dụng Webrtc để tạo ứng dụng Video Call Sinh viên thực : Võ Như Tài Giảng viên hướng dẫn : TS Nguyễn Hà Huy Cường Lớp : 17IT2 Đà nẵng, tháng năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG ĐỒ ÁN CƠ SỞ Tìm hiểu ứng dụng Webrtc để tạo ứng dụng Video Call Đà Nẵng, tháng năm 2020 MỞ ĐẦU Ngày nay, giới thơng minh có nhiều nhu cầu đươc đặt hơn, chắn có nhiều nhu cầu giúp cho xã hội người vươn tầm lên tầm cao Là bước khác với đồ án kỳ trước Lần nôi dụng đồ án Video Call – lĩnh vực xem xu phát triển nâng cấp thời kì đại… Đồ án kỳ là hội để nâng cao kiến thức lập trinh ứng dụng tìm hiểu API có giới Việc sử dụng phương pháp Web Real-Time Communications tạo thuận tiện việc thực mục tiêu đồ án lần Kết hợp với OpenTok để tạo server cho phép người dùng trao đổi video với Và việc hoàn thành đồ án học kỳ thiếu đến giúp đỡ dẫn tận tình thầy Nguyễn Hà Huy Cường - giáo viên hướng dẫn Người tạo điều kiện tốt cho hoàn thành đề án Thật cảm ơn thầy thời gian qua hướng dẫn, định hướng hướng phát triển cho chúng em Chúng em xin cảm ơn! NHẬN XÉT …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… ……………………………………………………… MỤC LỤC Trang Contents Chương Giới thiệu 1.1 Tổng quan 1.2 Phương pháp, kết .9 1.2.1 Phương pháp 1.2.2 Kết 1.3 Cấu trúc đồ án 10 Chương Nghiên cứu tổng quan 11 2.1 Các phương pháp 11 2.1.1 Web Real-Time Communications 11 2.1.2 EasyRTC OpenSource 12 2.2 Hạn chế, tồn phương pháp 13 2.2.1 Web Real-Time Communications 13 2.2.2 EasyRTC OpenSource 13 2.3 Kết luận 14 Chương Phân tích thiết kế hệ thống .15 3.1 Mô hình tổng quan WebRTC 15 3.1.1 Các giao thức sử dụng WebRTC 17 3.1.2 Các API WebRTC 20 3.1.3 Bảo mật WebRTC 21 3.2 Thiết kế chi tiết .21 Chương Kết luận Hướng phát triển 25 4.1 Kết luận 25 4.2 Định hướng phát triển 25 DANH MỤC CÁC BẢNG Trang Bảng 2.1 – Bảng so sánh phương pháp 13/14 DANH MỤC HÌNH Trang Hinh1 1: Hoạt động WebRTC 11 Hinh1 : Kiến trúc tổng thể WebRTC 15 Hinh1 3: Kiến trúc bên WebRTC .16 Hinh1 4: Chồng giao thức WebRTC 17 DANH MỤC CỤM TỪ VIẾT TẮT STT 10 11 12 13 14 Cụm từ Web Real-Time Communication HyperText Transfer Protocol Voice over internet protoco Real-time Transport Protocol Secure RTP Application Programming Interface Session Description Protoco Session Traversal Utilities for NAT Traversal Using Relays around NAT Interactive Communication Establishment User Datagram Protocol Transport Layer Security Stream Control Transport Protocol Internet Protocol Viết tắt WebRTC HTTP VoIP RTP SRTP API SDP STUN TURN ICE UDP TLS SCTP IP Chương Giới thiệu 1.1 Tổng quan Trong bối cảnh xã hội ngày phát triển, đời sống người phát triển mạnh mẽ, nhu cầu dịch vụ nâng cao qua thời gian Trong đó, nhu cầu việc liên lạc - tương tác với ngày ý phát triển mạnh mẽ Theo lịch sử trước năm 1878, người chủ yếu liên lạc khoảng cách xa với chủ yếu dựa vào bồ câu, vận chuyển thư người nhiên phương pháp tốn thời gian không đảm bảo Sau năm 1878, điên thoại đời cho phép truyền âm khoảng cách xa với tốc độ độ xác cao hơn, đặt móng cho việc liên lạc sau Hiện này, theo dòng thời gian ta thực gọi cách vòng Trát Đất dễ dàng Tuy nhiên nhu cầu lại đc nâng lên tầm cao mới, người muốn quan sát theo dõi sống ngày người mà họ yêu thương qua video trực tiếp , để thấu hiểu đối phương Từ đó, việc phát triển ứng dụng cho phép thực gọi video vấn đề quan tâm Và để đáp ứng đươc nhu cầu người người hay cịn gọi thị trường, để phục vụ cho trình học tập cụ thể Đồ án Cơ sở 4, định nghiên cứu phát triển ứng dụng – mô hình người thoải mái liên lạc với , mang lại niềm vui hạnh phúc Ở đây, nghiên cứu WebRTC, web API phát triển World Wide Web Consortium, khả hỗ trợ trình duyệt giao tiếp với thông qua VideoCall để tạo nên ứng dụng cho phép thực gọi video 1.2 Phương pháp, kết 1.2.1 Phương pháp Tìm hiểu WEBRTC gì? Cách thức hoạt động Liên kết với ngơn ngữ lập trình di động Chuẩn bị môi trường làm làm việc bao gồm thiết bị cần thiết để phục vụ cho việc lập trình động Lên kế hoạch làm việc cho giai đoạn làm việc để đảm bảo tiến độ dự án 1.2.2 Kết Đối với ứng dụng thiết bị di dộng giao diện môt phần quan trọng không thua chức kết đề tài lần bào gồm: trực tiếp trình duyệt Thực thi hầu hết tác vụ theo thời gian thực Không dùng cho việc gọi video hai trình duyệt Một lộ trình học tập có khả cản trở việc sử dụng nhà phát triển web viết JavaScript Cho phép bạn viết ứng dụng hội nghị video đơn giản vài dòng mã đơn giản Bị giới hạn số lượng nhớ số lượng cổng mà đối tượng node.js có quyền truy cập Chỉ gửi nhận tin nhắn nhanh Bảng 1: So sanh phương pháp WebRTC EasyRTC Mặc dù EasyRTC khung thu gọn dựa WebRTC, phù hợp với việc phát triển hệ thống với số lượng nhớ không lớn, hỗ trợ cho nhà phát triển tốt… Nhưng để hồn thành q trình học tập củng cố kiến thức cách chắn lựa chọn tốt bắt đầu với việc tìm hiểu phát triển ứng dụng đồ án lần theo phương pháp WebRTC Ở đồ án sữ dụng thêm môi trường OpenTok OpenTok tảng WebRTC hàng đầu cho video tương tác, cho phép thoại, video nhắn tin cho thiết bị di động web với API Video trực tiếp Bộ giải pháp di động toàn diện cho WebRTC Tải ứng dụng di động bạn lên chạy nhanh với tính nâng cao, kiểm sốt hỗ trợ thiết bị rộng Với OpenTok, bạn có tồn quyền kiểm soát trang web ứng dụng bạn muốn 14 Chương Phân tích thiết kế hệ thống 3.1 Mơ hình tổng quan WebRTC Cho phép truyền thơng thời gian thực trình duyệt cam kết đầy tham vọng, có lẽ bổ sung quan trọng cho tảng web từ hình thành Với kết kiến trúc WebRTC bao gồm nhiều tiêu chuẩn, giao thức API hoạt động:  Tổ chức W3C chịu trách nhiệm định nghĩa APIs WebRTC cho trình duyệt  Tổ chức IETF chịu trách nhiệm định nghĩa giao thức, định dạng liệu, bảo mật khía cạnh cần thiết khác phép truyền thơng peer-topeer trình duyệt Hình đưới mơ tả kiến trúc tổng thể WebRTC.Khối màu nhạt gọi "chức truyền thơng thời gian thực trình duyệt" Chức tương tác với ứng dụng web sử dụng API tiêu chuẩn WebRTC giao tiếp với hệ điều hành thơng qua trình duyệt Hinh1 : Kiến trúc tổng thể WebRTC 15 Một khía cạnh WebRTC tương tác xảy trình duyệt với trình duyệt, biết đến nhờ kết nối peer-to-peer, nơi mà chức RTC trình duyệt giao tiếp sử dụng giao thức tiêu chuẩn dây (không phải HTTP) với chức RTC trình duyệt khác Trong truyền thơngtrên web sử dụng 12 giao thức TCP, giao thức tiêu chuẩn dây RTC sử dụng trình duyệt sử dụng giao thức truyền UDP- User Datagram Protocol Một máy chủ báo hiệu (signaling server) cung cấp kênh báo hiệu trình duyệt kết nối peer-to-peer Hình thể kiến trúc bên WebRTC Chúng ta thấy có hai tầng riêng biệt WebRTC [8]: Các nhà phát triển trình duyệt web (nhờ Google Chrome Mozilla Firefox) quan tâm đến WebRTC C ++ API cho kết nối peer-to-peervà API cho audio, video vào/ra mạng theo ý họ Các nhà phát triển ứng dụng web quan tâm đến web API Hinh1 3: Kiến trúc bên WebRTC Ứng dụng web: ứng dụng viết web sử dụng JavaScript API WebRTCcho chức truyền thông thời gian thực chia sẻ video, audio chat, chia sẻ file WebRTC JavaScript API: API xây dựng nhà phát triển trình duyệt web theo tiêu chuẩn quy định tổ chức W3C Các API nhà 13 phát triển ứng dụng web sử dụng để viết ứng dụng web có sử dụng chức truyền thơng thời gian thực 16 WebRTC C++ API: lớp API bên WebRTC nhà phát triển trình duyệt web sử dụng để dễ dàng thực WebRTC JavaScript API Khối giao vận: đảm nhiệm việc thiết lập kết nối qua mơ hình mạng khác sử dụng STUN, TURN ICE, đồng thời thực việc dồn kênh thực chức truyền thông thời gian thực VideoEngine: framework xử lý chuỗi khung hình video, từ máy ảnh vào mạng, từ mạng tới hình hiển thị.VideoEngine WebRTC sử dụng VP8 video codec, định dạng video mở, chất lượng cao miễn phí cho tảng web phát triển từ dự án WebM - http://www.webmproject.org/ VideoEngine sử dụng đệm jitter động cho video, giúp che giấu ảnh hưởng tượng jitter gói tin đến chất lượng hình ảnh tổng thể Ngồi Video Engine cịn có tăng cường ảnh, giúp loại bỏ nhiễu cho hình ảnh thu từ webcam Voice Engine: framework xử lý chuỗi âm từ card âm vào mạng Nó sử dụng iSAC, iLBC Opus audio codec sử dụng đệm jitter động để che giấu tác động tượng jitter việc gói tin, giữ độ trễ thấp trì chất lượng âm cao Voice Engine sử dụng khử tiếng vọng giảm tiếng ồn để nâng cao chất lượng đàm thoại 3.1.1 Các giao thức sử dụng WebRTC Hinh1 4: Chồng giao thức WebRTC Giao thức HTTP (Hyper-Text Transport Protocol): WebRTC sử dụng giao thức HTTP - Hyper-Text Transport Protocol giống ứng dụng web nào, khơng cần kiến thức đặc biệt HTTP Phiên HTTP 1.1 IETF làm việc để định nghĩa phiên HTTP, gọi 2.0 Giao thức có khả tăng tốc độ hiệu tải web ứng dụng WebRTC sử dụng giao thức phiên khác tương lai HTTP Giao thức WebSocket: 17 WebSocket giao thức cung cấp kênh truyền thông song công hồn tồn thơng qua kết nối TCP WebSocket làm cho giao tiếp thời gian thực hiệu giảm thiểu độ trễ để gửi/nhận thơng báo hai phía kết nối WebRTC sử dụng WebSocket để trao đổi thơng báo trình duyệt với trình duyệt với máy chủ web để thiết lập, trì ngắt kết nối RTP SRTP Giao thức quan trọng sử dụng WebRTC RTP - Real-time Transport Protocol WebRTC sử dụng phiên an toàn RTP gọi SRTP - Secure RTP SRTP giao thức sử dụng để vận chuyển mang gói tin audio video media WebRTC client Các gói tin media chứa audio khung hình video số hóa tạo microphone máy ảnh ứng dụng, dựng lại loa hình hiển thị Một thiết lập thành cơng kết nối peer, với việc hồn thành trao đổi cặp offer/answer dẫn đến kết nối SRTP thiết lập trình duyệt trình duyệt máy chủ, trao đổi thông tin media SRTP cung cấp thông tin cần thiết để vận chuyển thành cơng dựng hình thơng tin media: codec (coder/decoder sử dụng để lấy mẫu nén audio video), nguồn media (nguồn đồng hóa SSRC), dấu thời gian, số thứ tự (để phát gói liệu), thông tin khác cần thiết để phát lại Đối với liệu audio video, SRTP khơng sử dụng Thay vào đó, gọi đến API RTCDataChannel dẫn đến kênh liệu mở trình duyệt cho phép định dạng liệu trao đổi SDP: Mô tả phiên WebRTC mô tả cách sử dụng SDP - Session Description Protocol Một mô tả phiên SDP (mã hóa nhờ đối tượng RTCSessionDescription) sử dụng để mô tả đặc điểm media kết nối peer Có danh sách dài phức tạp thông tin cần phải trao đổi hai đầu phiên SRTP để chúng giao tiếp Lời gọi API đến RTCPeerConnection cho kết mô tả phiên SDP, tập định dạng liệu theo cách đặc biệt, tạo trình duyệt truy cập cách sử dụng JavaScript ứng dụng web Một ứng dụng muốn có kiểm sốt media chặt chẽ thay đổi mô tả phiên trước chia sẻ với trình duyệt khác Khi thay đổi thực cho kết nối peer, điều dẫn đến thay đổi mô tả phiên mà hai bên trao đổi Điều gọi trao đổi offer/answer Bất kỳ nhà phát triển có nhu cầu kiểm soát phiên media chi tiết cần phải hiểu SDP Cả SRTP SDP hai giao thức chuẩn hóa IETF sử dụng rộng rãi thiết bị dịch vụ truyền thông Internet, chẳng hạn nhờ điện thoại VoIP, gateways, hội nghị truyền hình thiết bị hợp tác khác Kết là, thông tin liên lạc thiết bị WebRTC client Tuy nhiên, thiết bị VoIP video hỗ trợ đầy đủ khả giao thức WebRTC Các thiết bị cần phải nâng cấp để hỗ trợ giao thức mới, chức gateway sử dụng WebRTC client VoIP video client để làm việc chuyển đổi 18 STUN: STUN - Session Traversal Utilities for NAT - giao thức đƣợc sử dụng để giúp qua NAT Trong WebRTC, STUN client đƣợc xây dựng sẵn user agent trình duyệt, máy chủ web chạy máy chủ STUN Gói tin kiểm tra STUN gửi trước thiết lập phiên phép trình duyệt biết đằng sau NAT để khám phá địa ánh xạ cổng Thơng tin sau sử dụng để xây dựng địa ứng cử viên kỹ thuật ICE "hole punching" STUN đƣợc vận chuyển qua UDP, TCP, TLS TURN: TURN - Traversal Using Relays around NAT - mở rộng giao thức STUN, cung cấp chuyển tiếp media cho trường hợp mà ICE "hole punching" thất bại Trong WebRTC, user agent trình duyệt bao gồm TURN client, máy chủ web cung cấp máy chủ TURN Trình duyệt yêu cầu địa IP công cộng số cổng nhờ địa chuyển tiếp vận chuyển từ máy chủ TURN Địa sau bao gồm nhƣ địa ứng cử viên ICE "hole punching" TURN đƣợc sử dụng để qua tường lửa TURN sử dụng để thiết lập địa vận chuyển chuyển tiếp sử dụng UDP, TCP, TLS Tuy nhiên, thông tin liên lạc máy chủ TURN TURN client (thông qua NAT) luôn UDP ICE: ICE - Interactive Communication Establishment - giao thức tiêu chuẩn hóa IETF (RFC- 5245) [17] Giao thức ICE đƣợc dùng để thiết lập phiên media dựa UDP qua NAT ICE cố gắng tìm đƣờng tốt để kết nối peer, thử tất khả kết nối cách song song lựa chọn đƣờngkết nối hiệu ICE cố gắng để tạo kết nối cách sử dụng địa thu đƣợc từ hệ điều hành card mạng thiết bị; thất bại (có thể thiết bị đằng sau NAT), ICE lấy địa bên thiết bị cách sử dụng máy chủ STUN, không thành công, lưu lượng mạng chuyển qua máy chủ chuyển tiếp TURN ICE chạy vào lúc bắt đầu phiên trước thiết lập phiên SRTP trình duyệt Nó sử dụng để thiết lập kênh liệu không media TLS: TLS - Transport Layer Security (các phiên cũ đƣợc gọi SSL Secure Sockets Layer), lớp chèngiữa TCP ứng dụng cung cấp dịch vụ bảo mật xác thực Bảo mật cung cấp cách mã hóa gói tin "trên dây" Xác thực cung cấp cách sử dụng giấy chứng nhận kỹ thuật số Duyệt web an toàn ngày (HTTPS) sử dụng vận chuyển TLS WebRTC tận dụng lợi TLS cho báo hiệu bảo mật giao diện 19 người dùng Ngồi cịn có phiên TLS chạy UDP, đƣợc gọi DTLS - Datagram TLS, phiên sử dụng để tạo khóa cho SRTP gọi DTLS-SRTP TCP: Giao thức TCP - Transmission Control Protocol - giao thức lớp vận chuyển chồng giao thức IP, cung cấp vận chuyển đáng tin cậy với kiểm soát tắc nghẽn kiểm soát luồng TCP sử dụng để vận chuyển web (HTTP), nhƣng không phù hợp để thực truyền thông thời gian thực nhờ RTP, việc truyền tải lại sử dụng để đảm bảo độ tin cậy tạo chậm trễ lâu Giống nhƣ UDP, TCP sử dụng khái niệm cổng, số nguyên 16-bit, để tách riêng luồng giao thức TCP cung cấp hệ điều hành bên trình duyệt DTLS: DTLS- phiên TLS chạy UDP, cung cấp tính bảo mật xác thực tương tự TLS UDP qua NAT dễ dàng phù hợp cho ứng dụng peer-to-peer UDP: UDP - User Datagram Protocol - giao thức lớp vận chuyển chồng giao thức IP cung cấp dịch vụ gói tin khơng đáng tin cậy cho lớp phía UDP thường đƣợc sử dụng để vận chuyển trao đổi gói tin nhỏ ngắn (ví dụ gói tin DNS) để vận chuyển media thời gian thực nhƣ RTP UDP cung cấp để trao đổi thông tinrất nhanh hiệu quả; nhiên, người sử dụng UDP phải đối phó với khả gói tin Ngồi ra, UDP khơng có kiểm sốt tắc nghẽn, người sử dụng phải nhạy cảm với việc gói tin tắc nghẽn để tránh làm tải kết nối Internet Giống TCP, UDP sử dụng khái niệm cổng, số nguyên 16-bit, để phân tách luồng giao thức SCTP: SCTP - Stream Control Transport Protocol –là tiêu chuẩn IETF (RFC 4960) nằm tầng chuyên vận, cung cấp vận chuyển đáng tin cậy không đáng tin cậy IP với việc kiểm soát tắc nghẽn nhiều dịng phiên Kiểm sốt tắc nghẽn khả giao thức để cảm nhận gói tin Internet chậm trễ, tự động điều chỉnh tốc độ gửi để giảm thiểu tác động Nhiều dòng phiên cho phép phiên phân chia thành số dịng, dịng số chia sẻ băng thơng sẵn có phiên cách cơng SCTP không hỗ trợ phổ biến hệ điều hành, trình duyệt có riêng chồng giao thức SCTP chúng đƣợc xây dựng sẵn cho kênh liệu IP: 20 IP - Internet Protocol - giao thức lớp mạng làm tảng cho Internet IP phiên 4, IPv4, phiên tại, bị hết địa định danh nhất, gọi địa IP IP phiên 6, IPv6 định nghĩa để mở rộng đáng kể không gian địa phép Internet tiếp tục đà tăng trưởng phi thường kỷ 21 Thật không may, hỗ trợ triển khai IPv6 tiếp tục tiến hành chậm chạp mạng xương sống Internet nhiều dịch vụ Website hỗ trợ Ngày nay, khơng phải tất nhà cung cấp dịch vụ Internet (ISP) hỗ trợ IPv6 Đàm phán media liệu truyền tải phiên khác IP đƣợc thực cách sử dụng ICE 3.1.2 Các API WebRTC Các ứng dụng sử dụng WebRTC thƣờng cần làm việc sau:  Lấy dòng audio, video liệu khác  Lấy thông tin mạng nhờ địa IP cổng, trao đổi với khách hàng WebRTC khác (peer) phép kết nối, chí kết nối qua NAT tường lửa  Phối hợp tín hiệu thơng tin liên lạc để báo lỗi bắt đầu kết thúc phiên  Trao đổi thông tin media khả khách hàng, chẳng hạn độ phân giải codec  Giao tiếp thời gian thực với audio, video liệu Để lấy truyền dòng liệu, WebRTC thực API sau đây: - MediaStream: tiếp cận với dòng liệu, chẳng hạn nhƣ từ máy ảnh microphonecủa ngƣời dùng - RTCPeerConnection: thực gọi audio video, với hỗ trợ cho việc mã hóa quản lý băng thơng - RTCDataChannel: truyền liệu thông qua giao tiếp peerto-peer (gửi tin nhắn văn bản, gửi file, trò chơi trực tuyến…) 3.1.3 Bảo mật WebRTC Có số ngun nhân dẫn đến ứng dụng thơng tin liên lạc thời gian thực bị lỗi bảo mật: 21 - Media liệu không mã hóa bị can thiệp đƣờng truyền trình duyệt - Một ứng dụng ghi lại phân phối video audio mà ngƣời sử dụng khơng biết WebRTC có số tính để tránh vấn đề bảo mật này: - WebRTC đƣợc triển khai sử dụng giao thức an toàn nhƣ DTLS SRTP Mã hóa bắt buộc tất thành phần WebRTC, bao gồm chế truyền báo hiệu WebRTC plugin: thành phần chạy bên trình duyệt khơng phải tiến trình riêng biệt Các thành phần WebRTC không yêu cầu cài đặt riêng biệt đƣợc cập nhật trình duyệt cập nhật 3.2 Thiết kế chi tiết Ở ứng dụng lần em sử dụng OpenTok Android SDK Opentok dựa vào tảng webRTC để gửi gói tin đa phương tiện qua javascript giúp tạo streaming để chat TODO: Có thể tìm hiểu qua opentok sdk cho mobile app video Ứng dụng gồm có phần chính: - Phía client-side , sử dụng OpenTok SDK Cient chạy trình duyệt ứng dụng di động người dùng - Phía server-side , sử dụng OpenTok SDK Server chạy máy chủ bạn để truyền thông tin xác thực cho máy client SDK Client để xây dựng ứng dụng Android SDK Android OpenTok, cung cấp hầu hết chức cốt lõi cho ứng dụng bạn, bao gồm: - Kết nối tới OpenTok session - Xuất đến session - Đăng ký luồng session 22 Client SDKs có sẵn cho iOS web Tất SDK khách OpenTok tương tác với Các bước thực hiện: Để kết nối với OpenTok session, khách hàng cần quyền truy cập vào số thông tin xác thực: API key, session ID, token Yêu cầu quyền truy cập âm video Vì ứng dụng sử dụng âm video từ thiết bị người dùng, cần thêm số mã để yêu cầu quyền âm video Chúng sử dụng thư viện EasyPermissions để làm điều Kết nối đến Session Tiếp theo, kết nối với OpenTok Sesion Bạn phải làm điều trước bạn xuất luồng video âm lên phiên xem luồng người tham gia khác Sesion class định nghĩa SDK Android OpenTok Nó đại diện cho OpenTok session bao gồm phương thức để tương tác với phiên 23 Mã sử dụng Session.Builder()để khởi tạo đối tượng Session Hàm tạo có ba tham số: - Bối cảnh ứng dụng Android liên quan đến q trình - Khóa API OpenTok - ID Session Trong onCreate()phương thức, thêm dòng để gọi requestPermission() // SessionListener methods @Override public void onConnected(Session session) { Log.i(LOG_TAG, "Session Connected"); } @Override public void onDisconnected(Session session) { Log.i(LOG_TAG, "Session Disconnected"); } @Override public void onStreamReceived(Session session, Stream stream) { Log.i(LOG_TAG, "Stream Received"); } @Override public void onStreamDropped(Session session, Stream stream) { Log.i(LOG_TAG, "Stream Dropped"); } @Override public void onError(Session session, OpentokError opentokError) { Log.e(LOG_TAG, "Session error: " + opentokError.getMessage()); } 24  Khi máy khách kết nối với phiên OpenTok, thực phương thức SessionListener.onConnected(session)  Khi máy khách ngắt kết nối với phiên OpenTok, triển khai phương thức SessionListener.onDisconnected(session)  Nếu máy khách không kết nối với phiên OpenTok, triển khai phương thức SessionListener.onError(session, error)  Khi khách hàng khác xuất luồng đến phiên OpenTok, triển khai phương thức SessionListener.onStreamReceived(session, stream)  Khi khách hàng khác dừng xuất luồng đến phiên OpenTok, triển khai phương thức SessionListener.onStreamDropped(session, stream) Xuất luồng đến Session: 25 Chương Kết luận Hướng phát triển 4.1 Kết luận Đồ án hoàn thiện chức hệ thống Hệ thống sử dụng API WebRTC để xử lý video truyền thành công môi trường OpenTok WebRTC OpenTok cho phép truyền dẫn liệu, video tin nhắn từ thiết bị người dùng lên server OpenTok để xữ lý truyền dẫn đên đối tượng tương tác với người dùng Tuy đạt yêu cầu chức ban đầu đặt chat video thêm phần nhắn tin , dừng lại Ứng dụng cịn nhiều hạn chế: - Giao diện chưa tối ưu thân thiện với người dùng - Server chưa đảm bảo thời gian phục vụ bảng demo - Vẫn cho sách hỗ trợ cho người dùng - Số lượng người dùng chung server hạn chế 4.2 Định hướng phát triển Ứng dụng cịn thiếu sót nhiều mặt chức khả tương tác với người dùng, thời gian tới tiến hành cập nhập bổ sung tính sau: - Tiến hành nâng cấp giao diện ứng dụng - Phát triển phòng chat hội thoại - Tăng số người tham gia vào phòng chat - Nâng cấp server, tạo server riêng, đảm bảo cho việc trì server ổn định - Tạo hệ thống tài khoản, liệu cho đối tượng tham gia 26 PHỤ LỤC (kèm theo) Phần bao gồm nội dung cần thiết nhằm mimh họa hỗ trợ cho nội dung luận văn như: số liệu, mẫu biểu, tranh ảnh… Phụ lục khơng dày phần luận văn 27 (Mẫu) DANH MỤC TÀI LIỆU THAM KHẢO Tiếng Việt: Video chat using Opentok api and rails https://viblo.asia/p/video-chat-using-opentok-api-and-railsNznmMd66vr69 WebRTC basic - Phần 1: Tìm hiểu NAT, STUN, TURN vs ICE https://kipalog.com/posts/WebRTC-basic -Phan-1 Tim-hieu-veNAT STUN TURN-vs-ICE Tiếng Anh: Set up a Basic Android Client https://tokbox.com/developer/tutorials/android/basic-video-chat/ 28

Ngày đăng: 28/09/2020, 22:06

Từ khóa liên quan

Mục lục

  • Chương 1 Giới thiệu

    • 1.1 Tổng quan

    • 1.2 Phương pháp, kết quả

      • 1.2.1 Phương pháp

      • 1.2.2 Kết quả

      • 1.3 Cấu trúc đồ án

      • Chương 2 Nghiên cứu tổng quan

        • 2.1 Các phương pháp

          • 2.1.1 Web Real-Time Communications

          • 2.1.2 EasyRTC OpenSource

          • 2.2 Hạn chế, tồn tại của các phương pháp

            • 2.2.1 Web Real-Time Communications

            • 2.2.2 EasyRTC OpenSource

            • 2.3 Kết luận

            • Chương 3 Phân tích thiết kế hệ thống

              • 3.1 Mô hình tổng quan của WebRTC

                • 3.1.1 Các giao thức được sử dụng trong WebRTC

                • 3.1.2 Các API của WebRTC

                • 3.1.3 Bảo mật của WebRTC

                • 3.2 Thiết kế chi tiết

                • Chương 4 Kết luận và Hướng phát triển

                  • 4.1 Kết luận

                  • 4.2 Định hướng phát triển

Tài liệu cùng người dùng

Tài liệu liên quan