Ứng dụng chat, chia sẻ file và call video Đồ án cơ sở 4 ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN BÁO CÁO ĐỒ ÁN CƠ SỞ 4 TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG CHAT Giảng viên hướng dẫn TRẦN ĐÌNH SƠN Sinh viên thực hiện NGUYỄN THỊ PHƯƠNG NHI VÕ THỊ THÌN Lớp 18IT1 Đà Nẵng, tháng 01 năm 2021 ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN BÁO CÁO ĐỒ ÁN CƠ SỞ 4 TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG CHAT Đà Nẵng, tháng 01 năm 2021 MỞ ĐẦU Trong những năm gần đây, bắt đầu.
ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN BÁO CÁO ĐỒ ÁN CƠ SỞ TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG CHAT Giảng viên hướng dẫn : TRẦN ĐÌNH SƠN Sinh viên thực : NGUYỄN THỊ PHƯƠNG NHI VÕ THỊ THÌN Lớp : 18IT1 Đà Nẵng, tháng 01 năm 2021 ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN BÁO CÁO ĐỒ ÁN CƠ SỞ TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG CHAT Đà Nẵng, tháng 01 năm 2021 MỞ ĐẦU Trong năm gần đây, 2010 trở lại Cơn vũ bão smart phone tràn ngập nước ta Ai có smart phone Smart phone điện thoại thơng minh tích hợp tảng di động với nhiều tính hỗ trợ tiên tiến điện toán kết nối tảng điện thoại di động thông thường Ban đầu điện thoại thơng minh bao gồm tính điện thoại di động thông thường kết hợp với thiết bị phổ biến PDA, thiết bị điện tử cầm tay, máy ảnh kỹ thuật số, hệ thống định vị GPS Điện thoại thông minh ngày bao gồm tất chức laptop duyệt web, Wi-Fi, ứng dụng bên thứ di động phụ kiện kèm máy Việc mua dùng smart phone tirnj lợi thay hồn tồn máy tính bình thường Ngồi việc cịn cơng cụ để kết nối người với với chức điện thoại thông thường dùng ứng dụng bên thứ Mặc dù ứng dụng để kết nối người Mạng xã hội tiện ích đem lại hại nhiều thời gian vào Mạng xã hội Chính vậy, chúng em lựa chọn đề tài “Tìm hiểu xây dựng ứng dụng chat” hệ điều hành Android NHẬN XÉT Ứng dụng chat, chia sẻ file call video Đồ án sở MỤC LỤC CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI Giới thiệu đề tài Khảo sát ứng dụng tương tự 2.1 Messenger 2.2 Zalo CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ .9 Cơ sở lý thuyết 1.1 Hệ điều hành Android 1.1.1 Giới thiệu 1.1.2 Các tính bật Android .10 1.2 Java 12 1.2.1 Giới thiệu ngôn ngữ Java 12 1.2.2 Tính 13 1.3 NodeJS .15 1.3.1 Khái niệm NodeJS .15 1.3.2 Các đặc tính NodeJS 16 1.3.3 Những ứng dụng viết NodeJS 17 1.4 MongoDB 17 1.4.1 Định nghĩa 17 1.4.2 Cách thức hoạt động 17 1.4.3 Lợi .18 1.5 Socketio 18 Đặc tả yêu cầu .21 2.3 Xác định actor .21 2.4 Xác định yêu cầu người sử dụng 21 Ứng dụng chat, chia sẻ file call video Đồ án sở Biểu đồ use case 21 3.1 Xây dựng biểu đồ use case 21 3.2 Mô tả use case 21 Biểu đồ lớp 24 Biểu đồ ER 25 Thiết kế sở liệu 25 CHƯƠNG 3: TRIỂN KHAI VÀ KẾT QUẢ 25 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 25 Kết luận .25 Ưu, nhược điểm 25 Đánh giá, nhận xét .25 Hướng phát triển 25 Ứng dụng chat, chia sẻ file call video Đồ án sở CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI Giới thiệu đề tài Khảo sát ứng dụng tương tự 2.1 Messenger Facebook Messenger là ứng dụng phần mềm tin nhắn tức thời chia sẻ giao tiếp qua văn file (tập tin) Được tích hợp tính Chat (trị chuyện) của Facebook và xây dựng giao thức MQTT, Messenger cho phép người dùng Facebook trò chuyện với bạn bè di động, máy tính web Theo báo cáo Facebook vào tháng năm 2015, Facebook Messenger đạt 600 triệu người sử dụng. David A Marcus đứng đầu Facebook Messenger tham gia Facebook theo lời mời của Mark Zuckerberg, CEO Facebook Đến năm 2016, số người sử dụng Facebook Messenger lên tới tỉ người Messenger cho di động phát hành vào ngày tháng năm 2011 cho iOS và Android, với ứng dụng nâng cấp vào ngày 11 tháng 10 cho BlackBerry OS. Vào tháng 12 năm 2012, Ứng dụng Facebook Messenger cho Android vài nơi (chẳng hạn Úc, Nam Á, Indonesia, Nam Phi Venezuela) thêm vào Facebook cần tạo tên tài khoản cung cấp số điện thoại. Sau "Chat Heads"được cải tiến thêm vào Facebook Android Độ phủ sóng chưa đủ rộng rãi có phiên bản Messenger cho iPhone, Messenger cho Android, Messenger cho Windows Phone phiên PC Messenger có dung lượng tối đa lên tới 80 MB, số lớn Nếu sử dụng Messenger 3G hay xả tình trạng giật lag server máy chủ đặt nước ngồi, đặc biệt tình trạng ngốn RAM Messenger khẳng định nguyên dẫn tới tình trạng giật lag 2.2 Zalo Ứng dụng chat, chia sẻ file call video Đồ án sở Zalo là ứng dụng đa chức hoạt động tảng di động máy tính, sử dụng nước Việt Nam, Hoa Kỳ, Myanmar, Nhật Bản, Đài Loan, Hàn Quốc, Malaysia, Ả Rập Xê Út, Angola, Sri Lanka, Cộng hòa Séc, Nga Zalo phát triển phát hành công ty cổ phần VNG Phiên mắt vào ngày 08/08/2012 không nhận quan tâm nhiều từ người dùng.[5] Tháng 12/2012, Zalo thức mắt, theo mơ hình mobile-first nhanh chóng thu hút lượng lớn người dùng Việt Nam nhờ việc sản phẩm hoạt động tốt, ổn định hạ tầng mạng Việt Nam Tháng 02/2013 Zalo bình chọn vào top ứng dụng di động sáng tạo châu Á Techinasia Tính Nhắn tin miễn phí (có thể chia sẻ biểu tượng cảm xúc, hình ảnh video) Gọi điện miễn phí (gọi thoại gọi video) Chia sẻ trạng thái (viết, đọc, đăng bình luận trạng thái, xem bình luận bạn bè chung) Chia sẻ tập tin, video lưu trữ thêm nhiều thông tin mục Truyền file Kết bạn (thông qua liên kết với danh bạ điện thoại và Facebook, quét mã QR trực tiếp mục Tìm quanh đây; lấy vị trí thiết bị bạn làm tâm điểm truy quét người dùng Zalo khác bán kính lên đến 2 km) Thanh tốn thẻ tín dụng qua ZaloPay Hiện Zalo hỗ trợ nhiều tang bao gồm phiên bản Zalo cho Android, Zalo cho iPhone, Zalo cho Windows Phone, chí có phiên cho Windows, Mac OS X, Linux phiên web Nếu với kết nối Wifi, hai cho thấy khả xử lý tin nhắn tốt, độ trễ thấp, đó, Zalo có ưu khả sử dụng 3G phần mềm nhà phát triển VNG tối ưu hóa cho kết nối mạng Việt Nam Ứng dụng chat, chia sẻ file call video Đồ án sở CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ Cơ sở lý thuyết 1.1 Hệ điều hành Android 1.1.1 Giới thiệu Android hệ điều hành di động phát triển Google (GOOGL), sử dụng chủ yếu thiết bị hình cảm ứng, điện thoại di động máy tính bảng Nó cho phép người dùng thao tác với thiết bị cách trực quan thông qua chuyển động ngón tay như: chạm, vuốt Google sử dụng phần mềm Android tivi, ô tô đồng hồ đeo tay - Mỗi thiết bị thiết kế giao diện riêng Lịch sử phát triển HĐH Android Hệ điều hành Android.Inc - công ty phần mềm đặt Thung lũng Silicon - phát triển, sau Google mua lại vào năm 2005 Mặc dù mã nguồn Android phát hành định dạng mã nguồn mở để thuận tiện cho người dùng, sử dụng cố định cho phần mềm độc quyền thiết bị di động Các nhà đầu tư chuyên gia lĩnh vực cơng nghiệp điện tử lúc đặt dấu chẩm hỏi ý định thật Google việc thâm nhập thị trường di động kể từ mua lại Nhưng không lâu sau, Google công bố thiết bị chạy Android thị trường vào năm 2007 Ứng dụng chat, chia sẻ file call video Đồ án sở Android liên kết với nhiều ứng dụng Google Kể từ đó, nhà phát triển phần mềm sử dụng công nghệ Android để phát triển ứng dụng dành cho thiết bị di động, bán cửa hàng ứng dụng Bởi phát triển sản phẩm Google, nên người dùng Android có hội liên kết thiết bị di động họ với sản phẩm khác Google, chẳng hạn tảng email, Google Drive Tính đến tháng năm 2020, Android hệ điều hành phổ biến sử dụng thiết bị di động, với 74,3% thị phần toàn cầu IOS Apple đứng thứ hai với 24,8% 1.1.2 Các tính bật Android Giao diện người dùng mặc định Android sử dụng thao tác trực tiếp chạm, vuốt kéo để bắt đầu giao tiếp Thiết bị cung cấp phản hồi xúc giác cho người dùng thông qua cảnh báo rung để phản hồi hành động Ví dụ: người dùng nhấn vào nút điều hướng, thiết bị rung Khi người dùng khởi động thiết bị, hệ điều hành Android hiển thị hình chính, trung tâm điều hướng cho thiết bị Android, bao gồm tiện ích biểu tượng ứng dụng Widget hình thơng tin tự động cập nhật nội dung thời tiết tin tức Màn hình khác tùy theo nhà sản xuất thiết bị Người dùng chọn chủ đề khác 10 Ứng dụng chat, chia sẻ file call video Đồ án sở cho hình thơng qua ứng dụng bên thứ ba Google Play Thanh trạng thái phía hình hiển thị thông tin trạng thái kết nối thiết bị: mạng Wi-Fi kết nối, sóng 3G, cường độ sóng điện thoại Người dùng vuốt trạng thái theo chiều xuống để xem hình thơng báo Hệ điều hành Android sở hữu tính giúp tiết kiệm pin Hệ điều hành tạm dừng ứng dụng không sử dụng để tiết kiệm pin mức sử dụng CPU Android có tính quản lý nhớ giúp tự động đóng trình xử lý khơng hoạt động lưu nhớ Android với tính picture-in-picture cho phép thao tác đa nhiệm Bluetooth Các giao thức truyền thông 3G EVDO HSDPA Wifi Tự động vá lỗi Tin nhắn SMS MMS Camera tĩnh/Camera kỹ thuật số GPS Bản đồ Ứng dụng đa nhiệm/đa tác vụ (multitask) 11 Ứng dụng chat, chia sẻ file call video Đồ án sở Phần cứng Android sử dụng ARM cho tảng phần cứng; phiên sau hệ điều hành Android hỗ trợ kiến trúc x86 x86-64 Bắt đầu từ năm 2012, nhà sản xuất thiết bị phát hành điện thoại thơng minh máy tính bảng Android với vi xử lý Intel Yêu cầu phần cứng tối thiểu Android phụ thuộc vào kích thước hình thiết bị, loại mật độ CPU Ban đầu, Google yêu cầu xử lý 200MHz, 32MB nhớ 32 MB RAM So sánh hệ điều hành Android với hệ điều hành di động khác Đối thủ cạnh tranh Android Apple iOS Cả iOS Android cung cấp tính hữu ích cho người dùng Apple iOS hệ điều hành độc quyền với giao diện cố định, Android hệ điều hành mã nguồn mở cung cấp nhiều tùy biến linh hoạt Android hệ điều hành điện thoại thông minh bán chạy kể từ năm 2011 Thị phần toàn cầu Android từ năm 2018 đến 2019 74,45%, theo Statcounter Thị phần toàn cầu Apple iOS 22,85% Tuy nhiên, Mỹ, Apple thống trị thị phần với 57,22%; Samsung tuyên bố sở hữu 24,27%, LG (5,49%) Motorola (3,66%) 1.2 Java 1.2.1 Giới thiệu ngôn ngữ Java Năm 1990, James Gosling tạo ngôn ngữ Oak dự án Green Sun MicroSystems nhằm phát triển phần mềm cho thiết bị dân dụng.Năm 1995, Oak đổi tên thành Java và dần trở thành tiêu chuẩn cho công ngiệp Internet Vì Java phát triển mạnh mẽ nên năm 2009, Oracle đã mạnh tay mua lại Sun MicorSystems để nắm ngôn ngữ Java tay Java một ngôn ngữ lập trình hướng đối tượng (OOP) dựa lớp (class), thay biên dịch mã nguồn thành mã máy, Java biên dịch thành bytecode, sau chạy môi trường thực thi Java ngôn ngữ 12 Ứng dụng chat, chia sẻ file call video Đồ án sở thống trị lĩnh vực lập trình mặc cho trỗi dậy ngôn ngữ là Python hay JavaScript Java sử dụng rộng rãi hầu hết lĩnh vực từ ngân hàng, tài chính, bán lẻ, ứng dụng di động, thị trường chứng khốn hay chí là Big data 1.2.2 Tính Java sở hữu vốn tính đầy đủ đàn anh thực thụ ngành Bất học qua Java điểm qua số tính bậc sau: Ngơn ngữ lập trình Java cung cấp 12 tính Java có tính Đơn giản Java cải tiến dễ dàng cách loại bỏ tất thứ phức tạp anh hàng xóm (chẳng hạn trỏ C++, ) để thân trở nên đơn giản dễ tiếp cận với người học mà có hiệu suất hàng đầu 13 Ứng dụng chat, chia sẻ file call video Đồ án sở Java có tính Hướng đối tượng Mọi thứ Java xem đối tượng – sở hữu thuộc tính hành vi Java cịn coi ngơn ngữ hỗ trợ lập trình hướng đối tượng đầy đủ hồn thiện Java có tính di động Bạn hồn tồn đóng gói tồn chương trình Java di chuyển linh hoạt. Java có tính Độc lập với tảng Java độc lập, không phụ thuộc vào tảng, có nghĩa ứng dụng sau biên dịch mang thực thi tảng khác (Write Once, Run Anywhere). Java có tính Bảo mật Tất mã Java chuyển đổi sang byteCode sau biên dịch, cho phép phát triển hệ thống/ứng dụng khơng có virus, giả mạo Hơn nữa, cú pháp Java chặt chẽ nên giúp cho chương trình Java thơ sơ sinh có mức độ bảo mật định (Cho dù chưa thực biện pháp bảo mật) Java Mạnh mẽ Java có khả thích ứng với môi trường phát triển hỗ trợ cấp phát nhớ động giảm lãng phí nhớ hiệu suất ứng dụng tăng lên Có gom rác tự động java chạy trên Máy ảo Java để loại bỏ đối tượng khơng cịn sử dụng ứng dụng Java Có xử lý ngoại lệ chế kiểm tra kiểu Java Tất điểm làm cho Java mạnh mẽ Java có kiến trúc trung lập Không giống nhiều ngôn ngữ lập trình khác bao gồm C C ++, Java biên dịch, khơng biên dịch thành máy cụ thể tảng, thay vào biên dịch thành bytecode độc lập với tảng Bytecode phân phối web Máy ảo (JVM) giải thích tảng chạy Do đó, bạn viết đoạn mã Java tảng cụ thể tạo tệp Class mã thực thi Bạn thực thi / chạy tệp Class hệ thống 14 Ứng dụng chat, chia sẻ file call video Đồ án sở nào, điều kiện hệ thống đích phải cài đặt JVM (JRE) Nói tóm lại, trình biên dịch Java tạo định dạng tệp đối tượng có kiến trúc trung lập, làm cho mã biên dịch thực thi nhiều xử lý, với diện hệ thống Java Runtime Java có tính động Java ngơn ngữ động Nó hỗ trợ tải động lớp Nó có nghĩa lớp tải theo yêu cầu Nó hỗ trợ chức từ ngôn ngữ địa nó, tức là, C C ++ Java hỗ trợ biên dịch động quản lý nhớ tự động (bộ sưu tập rác) Java có tính Biên dịch + Thông dịch Java biên dịch thành byteCode sau thơng dịch mơi trường Java runtime Java có Hiệu suất cao Java đạt hiệu suất cao thơng qua việc sử dụng byteCode dễ dàng dịch sang mã máy việc sử dụng trình biên dịch JIT (Just-In-Time) giúp Java mang lại hiệu cao Java hỗ trợ Đa luồng Java hỗ trợ nhiều luồng thực thi, cho phép xử lý thực tính tốn song song Java có tính phân tán Java cung cấp tính giúp tạo ứng dụng phân tán Sử dụng phương thức từ xa (RMI - Remote Method Invocation), chương trình gọi phương thức chương trình khác thơng qua nhận đầu ra, cho phép đối tượng ứng dụng phân bố thực thi máy tính khác 1.3 NodeJS 1.3.1 Khái niệm NodeJS 15 Ứng dụng chat, chia sẻ file call video Đồ án sở ⁻ Nodejs một nền tảng (Platform) phát triển độc lập xây dựng Javascript Runtime Chrome mà xây dựng ứng dụng mạng cách nhanh chóng dễ dàng mở rộng ⁻ Nodejs xây dựng phát triển từ năm 2009, bảo trợ công ty Joyent, trụ sở California, Hoa Kỳ.Phần Core bên Nodejs viết hầu hết C++ nên cho tốc độ xử lý hiệu cao ⁻ Nodejs tạo ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực ⁻ Nodejs áp dụng cho sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi công nghệ, tạo dự án Startup nhanh 1.3.2 Các đặc tính NodeJS Khơng đồng bộ: Tất API NodeJS không đồng (noneblocking) , chủ yếu dựa NodeJS Server chờ đợi Server trả liệu Việc di chuyển máy chủ đến API sau gọi chế thông báo kiện Node.js giúp máy chủ để có phản ứng từ gọi API trước (Realtime) Chạy nhanh: NodeJ xây dựng dựa vào tảng V8 Javascript Engine nên việc thực thi chương trình nhanh Đơn luồng khả mở rộng cao: Node.js sử dụng mơ hình luồng với kiện lặp chế tổ chức kiện giúp máy chủ để đáp ứng cách không ngăn chặn làm cho máy chủ cao khả mở rộng trái ngược với máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu Node.js sử dụng chương trình đơn luồng chương trình tương tự cung cấp dịch vụ cho số lượng lớn nhiều so với yêu cầu máy chủ truyền thống Apache HTTP Server Khơng đệm: NodeJS khơng đệm liệu ứng dụng chủ yếu đầu liệu Có giấy phép: NodeJS cấp giấy phép MIT License 16 Ứng dụng chat, chia sẻ file call video Đồ án sở 1.3.3 Những ứng dụng viết NodeJS ⁻ Websocket server: Các máy chủ web socket Online Chat, Game Server… ⁻ Fast File Upload Client: là chương trình upload file tốc độ cao ⁻ Ad Server: Các máy chủ quảng cáo ⁻ Cloud Services: Các dịch vụ đám mây ⁻ RESTful API: đây ứng dụng mà sử dụng cho ứng dụng khác thông qua API ⁻ Any Real-time Data Application: bất kỳ ứng dụng có yêu cầu tốc độ thời gian thực Micro Services: Ý tưởng micro services chia nhỏ ứng dụng lớn thành dịch vụ nhỏ kết nối chúng lại với Nodejs làm tốt điều 1.4 MongoDB 1.4.1 Định nghĩa ⁻ MongoDB sở liệu mã nguồn mở sở liệu NoSQL hàng đầu, hàng triệu người sử dụng MongoDB viết C++ ⁻ Ngoài ra, MongoDB sở liệu đa tảng, hoạt động khái niệm Collection Document, cung cấp hiệu suất cao, tính khả dụng cao khả mở rộng dễ dàng 1.4.2 Cách thức hoạt động ⁻ MongoDB hoạt động tiến trình ngầm service, mở cổng (Cổng mặc định 27017) để lắng nghe yêu cầu truy vấn, thao tác từ ứng dụng gửi vào sau tiến hành xử lý ⁻ Mỗi ghi MongoDB tự động gắn thêm field có tên “_id” thuộc kiểu liệu ObjectId mà quy định để xác định tính ghi so với ghi khác, phục vụ thao tác tìm kiếm truy vấn thơng tin sau Trường liệu “_id” tự động đánh index (chỉ mục) để tốc độ truy vấn thông tin đạt hiệu suất cao 17 Ứng dụng chat, chia sẻ file call video Đồ án sở ⁻ Mỗi có truy vấn liệu, ghi cache (ghi đệm) lên nhớ Ram, để phục vụ lượt truy vấn sau diễn nhanh mà không cần phải đọc từ ổ cứng ⁻ Khi có yêu cầu thêm/sửa/xóa ghi, để đảm bảo hiệu suất ứng dụng mặc định MongoDB chưa cập nhật xuống ổ cứng ngay, mà sau 60 giây MongoDB thực ghi toàn liệu thay đổi từ RAM xuống ổ cứng 1.4.3 Lợi Ít schema hơn: Vì schema sinh để nhóm đối tượng vào cụm, dễ quản lý Ví dụ tạo schema tên Students chẳng hạn có liên quan đến student cho vào schema Trong mongodb collection ta chứa nhiều document khác Với document số trường, nội dung, kích thước lại khác Cấu trúc đối tượng rõ ràng Không có Join phức tạp Khả mở rộng cực lớn: việc mở rộng liệu mà lo đến vấn đề khóa ngoại, khóa chính, kiểm tra ràng buộc, MongoDB cho phép thực replication sharding nên việc mở rộng thuận lợi Sử dụng nhớ để lưu giữ cửa sổ làm việc cho phép truy cập liệu nhanh Việc cập nhật thực nhanh gọn nhờ update chỗ (inplace) 1.5 Socketio Socket.io là module Node.js phát triển vào năm 2010 Nó phát triển để sử dụng kết nối mở để tạo điều kiện giao tiếp thời gian thực, trả giá trị thực thời điểm đó. Socket.io cho phép giao tiếp hai chiều máy khách máy chủ Giao tiếp hai chiều bật máy khách có Socket.io trong trình duyệt máy chủ tích hợp gói Socket.io Nó sử dụng việc xây dựng ứng dụng web real-time cần tốc độ phản hồi như: chat, trực tiếp bóng đá, Socket.io xây dựng dựa 18 Ứng dụng chat, chia sẻ file call video Đồ án sở Engine.IO, thiết lập kết nối long-polling, sau cố gắng nâng cấp lên kết nối khác tốt giống WebSocket - Socket.IO - Đang hoạt động Một cách phổ biến để chứng minh giao tiếp hai chiều mà Socket.IO cung cấp ứng dụng trò chuyện (chúng tơi nói số trường hợp sử dụng khác bên dưới). Với socket, máy chủ nhận thông báo mới, gửi đến máy khách thơng báo cho họ, bỏ qua việc phải gửi yêu cầu máy khách máy chủ. Một ứng dụng trò chuyện đơn giản cho thấy cách hoạt động Thời gian thực bạn phụ thuộc vào. Ably cho phép bạn dễ dàng xây dựng ứng dụng thời gian thực hồn chỉnh, đơn giản hóa theo quy mơ Duy trì & Vận hành Socket.IO Như giải thích trên, việc bắt đầu với Socket.IO tương đối đơn giản - tất bạn cần máy chủ Node.js để chạy nó. Nếu bạn muốn bắt đầu với ứng dụng thời gian thực cho số lượng người dùng hạn chế, Socket.IO lựa chọn tốt. Các vấn đề xảy làm việc quy mơ lớn. Ví dụ: giả sử bạn muốn xây dựng ứng dụng giống CRM cho phép giao tiếp doanh nghiệp. Socket.IO xây dựng thư viện mạng không đồng gây 19 Ứng dụng chat, chia sẻ file call video Đồ án sở tải máy chủ bạn. Việc trì kết nối với người dùng gửi nhận tin nhắn gây thêm căng thẳng khách hàng bắt đầu gửi lượng lớn liệu qua Socket.IO, truyền liệu theo phần, giải phóng tài nguyên truyền liệu. Vì vậy, ứng dụng bạn thu hút nhiều người dùng máy chủ bạn đạt mức tải tối đa, bạn cần chia kết nối qua nhiều máy chủ Thật không may, điều không đơn giản thêm máy chủ khác. Sockets kết nối mở máy chủ máy khách. Máy chủ biết máy khách kết nối trực tiếp với khơng phải máy khách kết nối với máy chủ khác. Quay trở lại chức trò chuyện, tưởng tượng bạn muốn phát thông báo đến tất người dùng tham gia trị chuyện. Nếu họ kết nối với máy chủ khác, họ không nhận thông báo Để giải vấn đề này, bạn cần có quán rượu / cửa hàng phụ (ví dụ: Redis). Cửa hàng giải vấn đề nói cách thơng báo cho tất máy chủ họ cần gửi tin nhắn tham gia trị chuyện. Thật khơng may, điều có nghĩa sở liệu bổ sung để trì mà u cầu máy chủ riêng Socket.IO tạo điều hợp socket.io-adapter hoạt động với cửa hàng pub / sub máy chủ để chia sẻ thơng tin. Bạn viết cách triển khai điều hợp riêng bạn sử dụng điều hợp họ cung cấp cho Redis, may mắn thay, Socket.IO dễ tích hợp Các cơng cụ nâng cao độ tin cậy khác cho Socket.IO bao gồm CoreOS để chia nhỏ kiến trúc thành đơn vị phân phối phần cứng có sẵn, giới thiệu phiên tải tăng lên Một vấn đề khác với việc mở rộng quy mô Socket.IO WebSockets giữ kết nối họ mở, kết nối trở lại trạng thái thăm dị có nhiều u cầu suốt thời gian kết nối. Khi yêu cầu chuyển đến máy chủ khác, bạn nhận lỗi `Lỗi trình bắt tay WebSocket: Mã phản hồi khơng mong muốn: 400` Hai cách để giải vấn đề định tuyến máy khách dựa địa gốc họ cookie. Socket.IO có tài liệu tuyệt vời về cách giải vấn đề cho mơi trường khác Mặc dù Socket.IO có xu hướng có tài liệu tốt để khắc phục hạn chế nó, chúng thường coi 'biện pháp khắc phục' thay giải 20 Ứng dụng chat, chia sẻ file call video Đồ án sở pháp. Nếu bạn có ý định mở rộng quy mơ nữa, cách đề xuất làm tăng thêm độ phức tạp thêm lợi nhuận lỗi cho ngăn xếp bạn Đặc tả yêu cầu 2.3 Xác định actor 2.4 Xác định yêu cầu người sử dụng Biểu đồ use case 3.1 Xây dựng biểu đồ use case 3.2 Mô tả use case Use case Đăng nhập Mô tả Các bước thực Mô tả bước đăng Hệ thống yêu cầu người dùng cung 21 Ứng dụng chat, chia sẻ file call video Đồ án sở nhập người dùng cấp thông tin đăng nhập gồm tên đăng nhâp,mật Nhập xong bấm nút đăng nhập Hệ thống kiểm tra thông tin gửi thông báo thành công/thất bại Nếu thành cơng, chuyển qua trang Nếu thất bại, yêu cầu đăng nhập lại Đăng xuất Mô tả việc đăng xuất Người dùng thực chức khỏi hệ thống đăng xuất khỏi hệ thống Hệ thống thị yêu cầu xác nhận từ người dùng Người dùng xác nhận Hệ thống đăng xuất tài khoản khỏi hệ thống Nếu người dùng khơng xác nhận hệ thống giữ nguyên trạng Gọi video Mô tả việc gọi video Người dùng đăng nhập vào hệ với người dùng, thống nhóm Chọn đối tượng nhóm cần gọi Bấm vào biểu tượng call video Hệ thống tự động kết nối người dùng với Nếu có người nhận gọi kết nối thành cơng Nếu thất bại, hệ thống hiển thị không kết nối Chỉnh sửa hồ sơ Mô tả việc sửa thông Người dùng đăng nhập vào hệ tin, hồ sơ cá nhân thống Vào mục hồ sơ cá nhân Chọn mục cần chỉnh sửa Thực chỉnh sửa vào bấm nút lưu Hệ thống kiểm tra thông tin lưu 22 Ứng dụng chat, chia sẻ file call video Đồ án sở thơng tin vào sở liệu Tìm kiếm người Mơ tả việc tìm kiếm Người dùng đăng nhập vào hệ dùng người dùng thống Vào mục tìm kiếm Nhập tên thông tin nhận dạng người dùng bấm nút tìm kiếm Hệ thống đối chiếu thông tin vừa nhập với sở liệu Nếu tìm hiển thị danh sách phù hợp với thơng tin nhập Nếu thất bại thơng báo khơng có kết phù hợp Gửi tin nhắn Mô tả việc gửi tin Người dùng đăng nhập vào hệ nhắn cho người dùng thống nhóm Tìm kiếm người dùng nhóm cần liên hệ bấm vào Hệ thống hiển thị trang chat Người dùng nhập đoạn tin nhắn vào text box phía nhấn nút gửi Hệ thống xử lý thông tin lưu thông tin Nếu thành công, hiển thị thông báo gửi Nếu thất bại, hiển thị thông báo lỗi Gửi video-ảnh Mô tả bước gửi Người dùng đăng nhập hệ thống video ảnh cho Tìm kiếm người dùng nhóm người dùng cần liên hệ bấm vào Hệ thống hiển thị trang chat Xem tin nhắn Mô tả việc xem tin nhắn Người dùng đăng nhập vào hệ thống 23 Ứng dụng chat, chia sẻ file call video Đồ án sở Tìm kiếm người dùng nhóm cần liên hệ bấm vào Hệ thống hiển thị trang chat Biểu đồ lớp 24 Ứng dụng chat, chia sẻ file call video Đồ án sở Biểu đồ ER Thiết kế sở liệu CHƯƠNG 3: TRIỂN KHAI VÀ KẾT QUẢ CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Ưu, nhược điểm Đánh giá, nhận xét Hướng phát triển 25 ... nhập vào hệ thống 23 Ứng dụng chat, chia sẻ file call video Đồ án sở Tìm kiếm người dùng nhóm cần liên hệ bấm vào Hệ thống hiển thị trang chat Biểu đồ lớp 24 Ứng dụng chat, chia sẻ file call video. .. tĩnh/Camera kỹ thuật số GPS Bản đồ Ứng dụng đa nhiệm/đa tác vụ (multitask) 11 Ứng dụng chat, chia sẻ file call video Đồ án sở Phần cứng Android sử dụng ARM cho tảng phần cứng; phiên sau hệ điều hành... sau, Google cơng bố thiết bị chạy Android thị trường vào năm 2007 Ứng dụng chat, chia sẻ file call video Đồ án sở Android liên kết với nhiều ứng dụng Google Kể từ đó, nhà phát triển phần mềm sử dụng