1. Trang chủ
  2. » Thể loại khác

ĐẠI HỌC ĐÀ NẴNGKHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNGBÁO CÁO ĐỒ ÁN CƠ SỞ 4ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHAT GIỮA CLIENT VÀSERVER

30 22 0

Đ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

Thông tin cơ bản

Tiêu đề Xây dựng ứng dụng chat giữa client và server
Tác giả Mai Trúc Lân, Nguyễn Nguyên Ngọc Phú
Người hướng dẫn ThS. Phan Thị Quỳnh Hương
Trường học Đại học Đà Nẵng
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án
Năm xuất bản 2019
Thành phố Đà Nẵng
Định dạng
Số trang 30
Dung lượng 823,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hiện nay các ứng dụng trò chuyện trực tuyến nhiều vô số kể, bên cạnhnhững ứng dụng thành công thì cũng không ít những dụng đã chết ngay khi bắtđầu hoạt động vì không thể cạnh tranh nổi v

Trang 1

ĐẠI HỌC ĐÀ NẴNG

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BÁO CÁO ĐỒ ÁN CƠ SỞ 4

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHAT GIỮA CLIENT VÀ

SERVER

Sinh viên thực hiện : Mai Trúc Lân

Nguyễn Nguyên Ngọc Phú Giảng viên hướng dẫn : ThS.Phan Thị Quỳnh Hương

Đà Nẵng, tháng 12 năm 2019

Trang 2

MỞ ĐẦU

Những tiến bộ to lớn về công nghệ, đặc biệt là công nghệ thông tin trongnhững thập niên cuối của thế kỷ 20 đã tạo ra bước ngoặt mới cho sự phát triểnkinh tế xã hội toàn cầu Nhu cầu trao đổi thông tin, liên lạc giữa con người vì thếngày càng tăng cao Để đáp ứng nhu cầu đó, những website, ứng dụng di độnggiúp con người trao đổi, liên lạc trực tuyến xuất hiện ngày một nhiều

Nhắc đến ứng dụng trao đổi thông tin, liên lạc thì không thể không nhắcđến những gã khổng lồ như Messenger của Facebook, Zalo của Việt Nam, và vô

số những ứng dụng khác trên thị trường Mỗi ứng dụng đều có điểm mạnh và yếuriêng của mình Chung quy lại, chức năng chính của những ứng dụng này là đểgửi nhận tin nhắn văn bản, hình ảnh hoặc tệp đính kèm Một số ứng dụng sẽ cóchức năng hội thoại, thậm chí là trò chuyện bằng video

Điểm mạnh của ứng dụng trò chuyện trực tuyến đó là tính tiện lợi, nhanhchóng và tiết kiệm Chỉ cần có internet, mọi thông tin hay tệp dữ liệu của bạn cóthể gửi đến bất cứ đâu, bất cứ lúc nào với tốc độ cực kỳ nhanh Không cần tốntiền gửi thư, gửi bưu phẩm, hay phải chờ hàng tháng trời để nhận được thư vàphản hồi

Hiện nay các ứng dụng trò chuyện trực tuyến nhiều vô số kể, bên cạnhnhững ứng dụng thành công thì cũng không ít những dụng đã chết ngay khi bắtđầu hoạt động vì không thể cạnh tranh nổi với những ứng dụng mạnh mẽ trướcđó

Trang 3

LỜI CẢM ƠN

Để thực hiện và hoàn thành tốt đồ án này, em đã nhận được sự giúp đỡ vàhướng dẫn rất tận tình của các thầy cô thuộc Khoa Công Nghệ Thông Tin VàTruyền Thông – Đại Học Đà Nẵng Em xin cảm ơn các thầy cô thuộc bộ mônchuyên ngành đã cung cấp cho chúng em các thông tin, kiến thức vô cùng quýbáu và cần thiết trong suốt thời gian quá để em có thể thực hiện và hoàn thành

đồ án của mình Đặc biệt em xin chân thành cảm ơn cô Phan Thị Quỳnh Hương,người đã trực tiếp hướng dẫn chúng em trong thời gian thực hiện đồ án này

Do giới hạn về mặt thời gian và kiến thức cũng như kinh nghiệm thựctiễn, nên đề tài không tránh khỏi những sai sót Em rất mong nhận được sựthông cảm của quý thầy cô và mong đón nhận những góp ý của thầy cô và cácbạn

Em xin chân thành cảm ơn!

Trang 4

NHẬN XÉT (Của giảng viên hướng dẫn)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Đà Nẵng, ngày … tháng … năm 20…

Giảng viên hướng dẫn

THS.PHAN THỊ QUỲNH HƯƠNG

Trang 5

MỤC LỤC

Chương 1: 7

GIỚI THIỆU 7

1.1 Tổng quan: 7

1.1.1 Bối cảnh thực hiện đề tài: 7

1.1.2 Vấn đề cần giải quyết: 7

1.1.3 Đề xuất nội dung thực hiện: 8

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

1.2.1 Phương pháp: 8

1.2.2 Kết quả: 8

Chương 2: 9

NGHIÊN CỨU ĐỀ TÀI 9

2.1 Giới thiệu về trò chuyện trực tuyến: 9

2.2 Một số ưu và nhược điểm của trò chuyện trực tuyến: 9

2.2.1 Ưu điểm: 9

2.2.2 Nhược điểm: 10

2.3 Một số ứng dụng trò chuyện trực tuyến tiêu biểu: 10

2.3.1 Facebook Messenger: 10

2.3.2 Zalo: 10

2.4 Tổng quan về các công nghệ và mô hình sử dụng trong dự án: 11

2.4.1 Java: 11

2.4.2 Socket.IO: 13

2.4.3 Giao thức TCP/IP: 15

Chương 3: 20

THỰC HIỆN DỰ ÁN VÀ KẾT QUẢ 20

3.1 Các ngôn ngữ và công nghệ sử dụng cho dự án: 20

3.2 Các chức năng của ứng dụng: 20

3.2.1 Các chức năng chính: 20

3.2.2 Hạn chế tồn tại: 20

3.3 Cách thức thực hiện: 20

a Server: 20

b Client: 21

c Xử lý đăng nhập: 21

d Xử lý đăng ký: 21

Trang 6

e Gửi tin nhắn: 22

f Truyền file: 22

3.4 Kết quả: 22

3.4.1 Giao diện: 22

ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 29

Đánh giá tổng quan dự án: 29

Hướng phát triển: 29

DANH MỤC THAM KHẢO 30

Trang 7

Chương 1:

GIỚI THIỆU1.1 Tổng quan:

1.1.1 Bối cảnh thực hiện đề tài:

Trong quá trình phát triển xã hội, công nghệ thông tin đã và đang phát triểnmạnh mẽ, ngày càng thâm nhập sâu, trở thành một công cụ hỗ trợ đắc lực cho conngười trong mọi lĩnh vực

Nhu cầu liên lạc, trao đổi thông tin giữa người với người ngày càng tăngcao và cần thiết Dựa trên xu thế phát triển của xã hội cũng như nhu cầu thiết thựccủa con người, ứng dựng trò chuyện trực tuyến ra đời

1.1.2 Vấn đề cần giải quyết:

Để đáp ứng nhu cầu liên lạc trực tuyến, chạy theo xu hướng phát triển của

xã hội Một ứng dụng trò chuyện trực tuyến cần đáp ứng được những yêu cầuthiết yếu như trò chuyện văn bản, trao đổi hình ảnh, tệp dữ liệu, hay thậm chí làthực hiện các cuộc hội thoại bằng giọng nói hay trò chuyện bằng hình ảnh trựctuyến (video chat) Vấn đề thứ nhất cần giải quyết là đảm bảo ứng dụng có đầy đủcác chức năng cần thiết

Một điều cực kỳ quan trọng nữa đó là bảo mật và an toàn thông tin cũngnhư dữ liệu của người dùng Vấn đề thứ hai là tính ổn định và bảo mật của ứngdụng

Hiện nay các ứng dụng trò chuyện trực tuyến nhiều vô số kể, bên cạnhnhững ứng dụng thành công thì cũng không ít những dụng đã chết ngay khi bắtđầu hoạt động vì không thể cạnh tranh nổi với những ứng dụng mạnh mẽ trước

đó Vấn đề thứ ba là khả năng marketing và cạnh tranh của ứng dụng

1.1.3 Đề xuất nội dung thực hiện:

Thực hiện khảo sát và nghiên cứu về thị trường, nhu cầu cung ứng củamảng này Nghiên cứu, tham khảo các ứng dụng đã có, những điểm mạnh và yếu

Trang 8

Vì sao ứng dụng đó thành công hoặc thất bại Rút ra được những bài học từ nhữngngười đi trước.

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

1.2.1 Phương pháp:

 Nghiên cứu thị trường, tham khảo những ứng dụng đã có sẵn Tiếp thu điểmmạnh và loại bỏ điểm yếu lựa chọn những công nghệ tối ưu và hiện đại nhất

để bắt kịp xu thế phát triển không ngừng của công nghệ hiện nay

 Tiến hành phân tích thiết kế, chỉ những rủi ro, tính khả thi cũng như bất khảthi của những công việc cần thực hiện

 Sau khi phân tích, tiến hành thiết kế cơ sở dữ liệu, thiết kế giao diện và từngbước hoàn thiện, ghép nối dự án thành sản phẩm hoàn chỉnh

 Sau khi có sản phẩm hoàn chỉnh, tiến hành thử nghiệm và chỉnh sửa, cập nhậtnhững sai sót

 Cuối cùng là tổng kết và đưa ra hướng phát triển trong tương lai

1.2.2 Kết quả:

Nghiên cứu và học hỏi từ những ứng dụng nổi bật như Zalo, Messenger.Nghiên cứu và học tập các công nghệ mới, áp dụng để phát triển ứng dụngnhư Socket.IO

Sau quá trình thực hiện, kết quả thu được là một ứng dụng trò chuyện trựctuyến với các chức năng:

 Trò chuyện văn bản giữa hai cá nhân

 Trò chuyện văn bản giữa một nhóm gồm nhiều thành viên

 Truyền tệp hình ảnh giữa hai cá nhân

 Truyền tệp hình ảnh giữa một nhóm gồm nhiều thành viên

 Hoạch định ra hướng phát triển trong tương lai

Trang 9

Chương 2:

NGHIÊN CỨU ĐỀ TÀI

2.1 Giới thiệu về trò chuyện trực tuyến:

Trò chuyện trực tuyến (hay nhắn tin nhanh, tin nhắn tức khắc, chát –

từ chat trong tiếng Anh, IM viết tắt của Instant Messaging), là dịch vụ cho phép

hai người trở lên nói chuyện trực tuyến với nhau qua một mạng máy tính

Mới hơn IRC, nhắn tin nhanh là trò chuyện mạng, phương pháp nói chuyệnphổ biến hiện nay Nhắn tin nhanh dễ dùng hơn IRC, và có nhiều tính năng hay,như khả năng trò chuyện nhóm, dùng biểu tượng xúc cảm, truyền tập tin, tìm dịch

vụ và cấu hình dễ dàng bản liệt kê bạn bè

Nhắn tin nhanh đã thúc đẩy sự phát triển của Internet trong đầu thậpniên 2000

Có nhiều cách để thực hiện nhắn tin nhanh, thông qua các dịch vụnhư IRC, hay các dịch vụ của Yahoo!, Microsoft, do nhắn tin nhanh hỗ trợ rấtnhiều giao thức khác nhau Một số người dùng bị giới hạn vì sử dụng ứng dụngkhách chỉ truy cập một giao thức/mạng IM, như MSN hay Yahoo!

2.2 Một số ưu và nhược điểm của trò chuyện trực tuyến:

2.2.1 Ưu điểm:

 Khá dễ dàng tiếp cận và sử dụng

 Tính tiện dụng cao, có tể sử dụng mọi lúc mọi nơi thông qua internet

 Tốc độ truyền tải nhanh, có thể truyền tải được nhiều dạng dữ liệu khácnhau như văn bản, âm thanh, hình ảnh…

 Độ phổ biến rộng rãi

Trang 10

 Tích hợp cho nhiều nền tảng cả smartphone (Android, iOS) và máy tính(Window, MacOS, Linux, Ubuntu).

2.2.2 Nhược điểm:

 Phụ thuộc vào internet

 Chưa đảm bảo được tính bảo mật và an toàn thông tin khi sử dụng

2.3 Một số ứng dụng trò chuyện trực tuyến tiêu biểu:

2.3.1 Facebook Messenger:

Facebook Messenger là dịch vụ và ứng dụng phần mềm tin nhắn tức thờichia sẻ giao tiếp bằng ký tự và giọng nói Được tích hợp trên ứng dụng chat củaFacebook và được xây dựng trên giao thức MQTT

Messenger cho phép người dùng Facebook trò chuyện với bạn bè trên cả diđộng và trang web chính Được tích hợp trên ứng dụng Chat (trò chuyện) củaFacebook và được xây dựng trên giao thức MQTT, Messenger cho phép ngườidùng Facebook trò chuyện với bạn bè trên cả di động và trang web chính

2.3.2 Zalo:

Zalo là một dịch vụ OTT (viết tắt của over the top - là thuật ngữ chỉ những

dữ liệu được cung cấp trên nền tảng Internet nhưng không một nhà cung cấpmạng hay bất kỳ tổ chức nào có thể can thiệp tới) Zalo từng lọt top ứng dụngđược nhiều người tải về nhất Cũng như Facebook, Zalo cho phép người dùng cóthể nhắn tin, gọi điện trò chuyện cùng bạn bè một cách miễn phí ở bất cứ đâu Đặcbiệt ứng dụng này do người Việt tạo ra và được phát triển bởi Vinagame

Zalo là từ kết hợp của Zing và Alo (câu thường được nói khi nghe máy ởViệt Nam)

Ứng dụng Zalo xuất hiện trên thị trường vào 08/08/2012 và đến tháng12/2012 thì ứng dụng nhắn tin thuần Việt này bắt hoạt động ổn định và dần phổbiến tại thị trường Việt Nam, hạ gục nhiều đối thủ đáng gờm trước đó

Trang 11

2.4 Tổng quan về các công nghệ và mô hình sử dụng trong dự án:

2.4.1 Java:

a Java là gì?

Java (phiên âm Tiếng Việt: "Gia-va") là một ngôn ngữ lập trìnhhướng đốitượng (OOP) và dựa trên các lớp (class) Khác với phần lớn ngôn ngữ lậptrình thông thường, thay vì biên dịchmã nguồn thành mã máy hoặc thôngdịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồnthành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtimeenvironment) chạy

 Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở SunMicrosystems năm 1991 Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa

là cây sồi; do bên ngoài cơ quan của ông Gosling có trồng nhiều loại câynày), họ dự định ngôn ngữ đó thay cho C++, nhưng các tính nănggiống Objective C Không nên lẫn lộn Java với JavaScript, hai ngôn ngữ

đó chỉ giống tên và loại cú pháp như C Công ty Sun Microsystems đanggiữ bản quyền và phát triển Java thường xuyên Tháng 04/2011, công tySun Microsystems tiếp tục cho ra bản JDK 1.6.24

 Java được sử dụng chủ yếu trên môi trường NetBeans và Oracle

 Java được tạo ra với tiêu chí "Viết (code) một lần, thực thi khắp nơi"("Write Once, Run Anywhere" (WORA)) Chương trình phần mềm viếtbằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông quamột môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗtrợ nền tảng đó Môi trường thực thi của Sun Microsystems hiện hỗ trợ SunSolaris, Linux, Mac OS, FreeBSD & Windows Ngoài ra, một số công ty,

tổ chức cũng như cá nhân khác cũng phát triển môi trường thực thi Javacho những hệ điều hành khác như BEA, IBM, HP Trong đó đáng nóiđến nhất là IBM Java Platform hỗ trợ Windows, Linux, AIX & z/OS

b Đặc điểm của Java:

Trang 12

Hướng đối tượng: Trong ngôn ngữ lập trình Java, mọi thứ đều là Object Java có thể mở rộng vì nó dựa trên mô hình Object.

Đơn giản: Ngôn ngữ lập trình Java được thiết kế để dễ học Nếu như bạn

hiểu cơ bản về khái niệm lập trình hướng đối tượng Java, thì bạn có thể nắm bắt ngôn ngữ này rất nhanh

Nền tảng độc lập: Khác với các ngôn ngữ lập trình khác (C, C++), khi

ngôn ngữ lập trình Java được biên dịch, nó không biên dịch sang một máy tính cụ thể trên nền tảng nào, thay vào đó là các byte code độc lập với nền tảng Byte code này được phân phối ở trên web và được thông dịch bằng Virtual Machine (JVM) trên bất cứ nền tảng nào mà nó đang chạy

Bảo mật: Với tính năng an toàn của ngôn ngữ lập trình Java, nó cho phép

phát triển những hệ thống không có virus, giả mạo Các kỹ thuật xác thực dựa trên mã hóa công khai

Portable: Là kiến trúc trung lập và nó không phụ thuộc vào việc thực hiện

là các đặc điểm chính nhất khi nói về khía cạnh Portable của ngôn ngữ lập trình Java Trình biên dịch trong Java được viết bằng ANSI C với một ranhgiới portable gọn gàng, đây là một subset POSIX (giao diện hệ điều hành linh động) Bạn hoàn toàn có thể mang byte code của Java lên bất cứ nền tảng nào

Kiến trúc trung lập: Trình biên dịch của ngôn ngữ lập trình Java tạo ra

một định dạng file object có kiến trúc trung lập, nó làm cho code sau khi biên dịch có thể chạy trên nhiều bộ vi xử lý, với sự hiện diện của Java runtime system

Đa luồng: Với tính năng đa luồng của ngôn ngữ lập trình Java, lập trình có

thể viết các chương trình có thể thực hiện nhiều tác vụ đồng thời Tính năng độc đáo này cho phép các nhà phát triển xây dựng các ứng dụng tương tác có thể chạy trơn tru

Mạnh mẽ: Ngôn ngữ lập trình Java nỗ lực loại trừ những tình huống dễ bị

lỗi bằng cách nhấn mạnh chủ yếu đó là kiểm tra lỗi thời gian biên dịch và kiểm tra runtime

Trang 13

 Các công nghệ Big Data

 Trong lĩnh vực giao dịch chứng khoán

 Các ứng dụng khoa học

d Khuyết điểm của Java:

Hiệu suất: Tốn nhiều bộ nhớ hơn các ngôn ngữ được biên dịch nguyên

bản như C hoặc C ++

hiết kế giao diện: Các giao diện mặc định và thiết kế của các ứng dụng

GUI viết bằng Java sử dụng bộ công cụ Swing khá đơn giản

“keep-sự kiện, thay vì phải thực thi lại một loạt các thủ tục kết nối phức tạp nhưtrước, và ứng dụng của bạn sẽ trở thành ứng dụng thời gian thực ví dụ:Yahoo Messenger, Skype v.v… đều là các ứng dụng được xây dựng theo

mô hình Socket

 Trong lập trình web trước đây, việc xây dựng client-server theo mô hìnhsocket phải thông qua các phần mềm thứ Vì mô hình socket không phùhợp với các ngôn ngữ lập trình Server như: PHP, ASP.NET, JSP v.v… Cácngôn ngữ này luôn làm việc theo cách: Die ngay connection khi Server trả

Trang 14

lời Client xong Tuy nhiên, mình nhấn mạnh: Chúng ta có thể làm đượcweb-socket với bất kỳ ngôn ngữ lập trình nào Chỉ có điều, với các ngônngữ cũ, việc làm này cần bạn phải am hiểu các giao thức http, tcp; hiểu thếnào là 1 request header, v.v…

 Socket là một điểm cuối (end-point) của liên kết truyền thông hai chiều(two-way communication) giữa hai chương trình chạy trên mạng Các lớpSocket được sử dụng để biểu diễn kết nối giữa client và server, được ràngbuộc với một cổng port (thể hiện là một con số cụ thể) để các tầng TCP(TCP Layer) có thể định danh ứng dụng mà dữ liệu sẽ được gửi tới

 Lập trình socket là lập trình cho phép người dùng kết nối các máy tínhtruyền tải và nhận dữ liệu từ máy tính thông qua mạng

 Hiểu đơn giản, socket là thiết bị truyền thông hai chiều gửi và nhận dữ liệu

từ máy khác

c Socket.IO là gì?

các bên ở những địa điểm khác nhau kết nối với nhau, truyền dữ liệu ngaylập tức thông qua server trung gian Socketio có thể được sử dụng trongnhiều ứng dụng như chat, game online, cập nhật kết quả của một trận đấuđang xảy ra,

 Socket.IO không phải là một ngôn ngữ, mà chỉ là 1 công cụ giúp thực hiệnnhững ứng dụng realtime Vì thế, không thể sử dụng socketio để thay thếhoàn toàn cho một ngôn ngữ, mà phải sử dụng kết hợp với một ngôn ngữkhác Ngôn ngữ đó có thể là php, asp.net, nodejs,

d Cơ chế hoạt động của socket.IO:

 Cơ chế hoạt động của một ứng dụng realtime đó là thông qua server để lắngnghe (listen) data và truyền data về các máy client Vì vậy cần cài khai báo

sử dụng socketio ở cả phía server và client

Trang 15

 Để lắng nghe data, ta sử dụng câu lệnh socket.on(), để phát dữ liệu thì sửdụng lệnh socket.emit()

 Ví dụ, client gửi 1 đoạn chat đi, thì khi đó ở phía server cần viết code đểnhận dữ liệu đoạn code đó và truyền dữ liệu chat đó đi đến các server khác.Đồng thời ở ở phía client cũng cần viết code để gửi và nhận dữ liệu từserver

Hình 01 Mô hình hoạt động của Socket.IO

2.4.3 Giao thức TCP/IP:

a Tổng quan:

TCP/IP là bộ giao thức cho phép kết nối các hệ thống mạng không đồng nhất với nhau Ngày nay TCP/IP được sử dụng rộng rãi trong mạng cục bộ cũng như mạng toàn cầu TCP/IP được xem như giản lược của mô hình tham chiếu OSIvới 4 tầng như sau:

 Tầng Liên Kết (Datalink Layer)

 Tầng Mạng (Internet Layer)

 Tầng Giao Vận (Transport Layer)

 Tầng Ứng Dụng (Application Layer)

Ngày đăng: 20/04/2021, 22:24

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w