Tải bản đầy đủ (.doc) (30 trang)

ĐẠ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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (614.29 KB, 30 trang )

ĐỒ ÁN CƠ SỞ 4

ĐẠ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

Lớp

: 17IT3

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

17IT3

Trang 1


ĐỒ ÁN CƠ SỞ 4



MỞ ĐẦU
Những tiến bộ to lớn về công nghệ, đặc biệt là công nghệ thông tin trong
nhữ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ển
kinh tế xã hội tồ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 động
giú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ếu
riê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, nhanh
chó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ốn
tiề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ạnh
nhữ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
đó.

17IT3

Trang 2


ĐỒ ÁN CƠ SỞ 4


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ôn
chuyê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à hồ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ực tiễ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 q thầy cơ và mong đón nhận những góp ý của thầy cô và các bạn.
Em xin chân thành cảm ơn!

17IT3

Trang 3


ĐỒ ÁN CƠ SỞ 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

17IT3

Trang 4


ĐỒ ÁN CƠ SỞ 4

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:.............................................................................................7
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

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ý:.......................................................................................................................22
17IT3

Trang 5


ĐỒ ÁN CƠ SỞ 4

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

17IT3

Trang 6


ĐỒ ÁN CƠ SỞ 4

Chương 1:
GIỚI THIỆU
1.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ển
mạ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 con
ngườ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ăng
cao 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ực
củ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ầu
thiế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ực
tuyế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 tồn thơng tin cũng
như 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 ứng
dụng.
Hiện nay các ứng dụng trò chuyện trực tuyến nhiều vô số kể, bên cạnh
nhữ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ủa
mả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.
17IT3

Trang 7


ĐỒ ÁN CƠ SỞ 4


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ững
ngườ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ểm
mạ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ừng
bước hoàn thiện, ghép nối dự án thành sản phẩm hồ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ật
nhữ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ụng
như 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ực
tuyế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.

17IT3

Trang 8



ĐỒ ÁN CƠ SỞ 4

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ện
phổ 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ập
niê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ất
nhiề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ụng
khá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ác
nhau như văn bản, âm thanh, hình ảnh…
• Độ phổ biến rộng rãi.
17IT3

Trang 9



ĐỒ ÁN CƠ SỞ 4

• 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 tồ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ời
chia 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ủa
Facebook 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ủa
Facebook 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.
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ấp
mạ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.
Đặc biệ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áng
12/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 đó.
17IT3


Trang 10


ĐỒ ÁN CƠ SỞ 4

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ình hướng đối
tượng (OOP) và dựa trên các lớp (class). Khác với phần lớn ngôn ngữ lập
trình thơng thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông
dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn
thành bytecode, bytecode sau đó sẽ được mơi trường thực thi (runtime
environment) chạy..
• Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun
Microsystems 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 ngồi cơ quan của ơng Gosling có trồng nhiều loại cây
này), họ dự định ngơn ngữ đó thay cho C++, nhưng các tính năng
giố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 đang
giữ bản quyền và phát triển Java thường xuyên. Tháng 04/2011, công ty
Sun 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ết
bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua
mộ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ợ Sun
Solaris, Linux, Mac OS, FreeBSD & Windows. Ngồ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 Java
cho 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:
17IT3

Trang 11


ĐỒ ÁN CƠ SỞ 4

• 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 tồ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 ranh
giới portable gọn gàng, đây là một subset POSIX (giao diện hệ điều hành
linh động). Bạn hồn tồ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.
17IT3

Trang 12


ĐỒ ÁN CƠ SỞ 4

c. Ứng dụng của Java:
• Ứng dụng Android
• Các ứng dụng web Java
• Các cơng cụ phần mềm
• Khơng gian nhúng
• Các cơng nghệ Big Data
• Trong lĩnh vực giao dịch chứng khố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.
2.4.2 Socket.IO:
a. Socket là gì?
• Socket là 1 cơng nghệ. Socket là cách bạn tổ chức mơ hình client-server để
một trong 2 bên ln trong tình trạng sẵn sàng trả lời bên kia và ngược lại.
Để đảm bảo việc này, kết nối giữa Client và Server phải ở trạng thái “keepalive” và phải ln xảy ra q trình đồng bộ giữa Client-Server. Socket sẽ
mang lại khả năng trả lời tức thì từ một trong 2 bên khi bên kia đưa ra một
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ình
socket 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ác
17IT3

Trang 13


ĐỒ ÁN CƠ SỞ 4

ngôn ngữ này luôn làm việc theo cách: Die ngay connection khi Server trả
lời Client xong. Tuy nhiên, mình nhấn mạnh: Chúng ta có thể làm được
web-socket với bất kỳ ngơn ngữ lập trình nào. Chỉ có điều, với các ngơn
ngữ 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ớp
Socket được sử dụng để biểu diễn kết nối giữa client và server, được ràng
buộ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ính
truyề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ì?
• Để xây dựng một ứng dụng realtime cần sử dụng socketio. Socketio sẽ giúp
các bên ở những địa điểm khác nhau kết nối với nhau, truyền dữ liệu ngay
lập tức thơng qua server trung gian. Socketio có thể được sử dụng trong
nhiề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ện
nhữ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:

17IT3

Trang 14


ĐỒ ÁN CƠ SỞ 4

• Cơ chế hoạt động của một ứng dụng realtime đó là thơng qua server để lắng
nghe (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.
• Để 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 OSI
vớ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)
17IT3

Trang 15


ĐỒ ÁN CƠ SỞ 4

Hình 02. Các tầng trong bộ giao thích TCP/IP
Tầng liên kết: Tầng liên kết (cịn được gọi là tầng liên kết dữ liệu hay tầng giao
tiếp mạng) là tầng thấp nhất trong mơ hình TCP/IP, bao gồm các thiết bị giao tiếp
mạng và các chương trình cung cấp các thơng tin cần thiết để có thể hoạt động,
truy nhập đường truyền vật lý qua các thiết bị giao tiếp mạng đó.
Tầng Internet: Tầng Internet ( hay cịn gọi là tầng Mạng) xử lý q trình truyền
gói tin trên mạng, các giao thức của tầng này bao gồm : IP ( Internet Protocol) ,
ICMP ( Internet Control Message Protocol) , IGMP ( Internet Group Message

Protocol ).
Tầng giao vận: Tầng giao vận phụ trách luồng dữ liệu giữa 2 trạm thực hiện các
ứng dụng của tầng trên, tầng này có 2 giao thức chính là TCP ( Transmisson
Control Protocol) và UDP ( User Datagram Protocol ) - TCP cung cấp luồng dữ
liệu tin cậy giữa 2 trạm, nó sử dụng các cơ chế như chia nhỏ các gói tin ở tầng
trên thành các gói tin có kích thước thích hợp cho tầng mạng bên dưới, báo nhận
gói tin, đặt hạn chế thời gian timeout để đảm bảo bên nhận biết được các gói tin
17IT3

Trang 16


ĐỒ ÁN CƠ SỞ 4

đã gửi đi. Do tầng này đảm bảo tính tin cậy nên tầng trên sẽ khơng cần quan tâm
đến nữa. - UDP cung cấp một dịch vụ rất đơn giản hơn cho tầng ứng dụng. Nó chỉ
gửi dữ liệu từ trạm này tới trạm kia mà khơng đảm bảo các gói tin đến được tới
đích. Các cơ chế đảm bảo độ tin cậy được thực hiện bởi tầng trên tầng ứng dụng.
Tầng ứng dụng: Là tầng trên của mơ hình TCP/IP bao gồm các tiến trình và các
ứng dụng cung cấp cho người sử dụng để truy cập mạng. Có rất nhiều ứng dụng
được cung cấp trong tầng này, mà phổ biến là Telnet: sử dụng trong việc truy cập
mạng từ xa, FTP (File Transport Protocol) dịch vụ truyền tệp tin, Email: dịch vụ
truyền thư tín điện tử, WWW (World Wide Web).
b. Phương thức hoạt động của bộ giao thức TCP/IP:

Hình 03. Q trình đóng gói dữ liệu trong TCP/IP
Cũng tương tự như trong mơ hình OSI, khi truyền dữ liệu, quá trình tiến
hành từ tầng trên xuống tầng dưới, qua mỗi tầng dữ liệu được thêm vào thông tin
điều khiển gọi là Header. Khi nhận dữ liệu thì quá trình xảy ra ngược lại, dữ liệu
17IT3


Trang 17


ĐỒ ÁN CƠ SỞ 4

được truyền từ tầng dưới lên và qua mỗi tầng thì phần header tương ứng sẽ được
lấy đi và khi đến tầng trên cùng thì dữ liệu khơng cịn phần header nữa.

Hình 04. Cấu trúc dữ liệu trong TCP/IP
Hình trên cho ta thấy lược đồ dữ liệu qua các tầng. Trong hình ta thấy tại
các tầng khác nhau dữ liệu được mang những thuật ngữ khác nhau:
• Trong tầng ứng dụng: dữ liệu là các luồng được gọi là stream.
• Trong tầng giao vận: đơn vị dữ liệu mà TCP gửi xuống gọi là TCP
segment.
• Trong tầng mạng, dữ liệu mà IP gửi xuống tầng dưới gọi là IP Datagram
• Trong tầng liên kết, dữ liệu được truyền đi gọi là frame.

Hình 05. ISO và TCP/IP
Sự khác nhau giữa TCP/IP với OSI:

17IT3

Trang 18


ĐỒ ÁN CƠ SỞ 4

• Tầng ứng dụng trong mơ hình TCP/IP bao gồm ln cả 3 tầng trên của mơ
hình OSI.

• Tầng giao vận trong mơ hình TCP/IP khơng phải luôn đảm bảo độ tin cậy
của việc truyền tin như ở trong tầng giao vận của OSI mà cho phép thêm
một lựa chọn khác là UDP.

17IT3

Trang 19


ĐỒ ÁN CƠ SỞ 4

Chương 3:
THỰC HIỆN DỰ ÁN VÀ KẾT QUẢ
3.1 Các ngôn ngữ và công nghệ sử dụng cho dự án:
• Java
• Eclipse
• PhpAdmin
3.2 Các chức năng của ứng dụng:
3.2.1 Các chức năng chính:
• Đăng nhập, đăng ký
• Trị chuyện giữa hai cá nhân
• Tạo cuộc trị chuyện nhóm
• Trị chuyện nhóm nhiều người
• Gửi được biểu cảm
3.2.2 Hạn chế tồn tại:
Các chức năng chỉ dừng lại ở mức cơ bản, và tồn tại một số hạn chế nhất định:
• Chưa có đăng nhập sử dụng tài khoản Google hoặc Facebook
• Chưa có tính năng kết bạn, tất cả người dùng trong hệ thống đều có thể trị
chuyện với nhau
• Chưa có chức năng thay đổi màu chữ để tăng hiệu ứng

• Chưa có trị chuyện video
• Có tính năng nhận/gửi file nhưng người nhận khơng nhận được
3.3 Cách thức thực hiện:
a. Server:
• Lắng nghe và chấp nhận kết nối từ cổng 9999
• Cho phép nhiều Client kết nối đến cùng lúc
17IT3

Trang 20


ĐỒ ÁN CƠ SỞ 4

• Mỗi Client khi kết nối phải đăng nhập tên. Chuỗi tên và sẽ được gửi lên
Server. Server sẽ kiểm tra xem tài khoản đó có tồn tại và đang đăng nhập
hay không. Nếu thoả mãn kết nối, Server sẽ trả về một chuỗi cho phép
Client đăng nhập.
b. Client:
• Kết nối tới Server qua cổng 9999
• Mỗi chuỗi yêu cầu gửi đến Server đều được gắn thêm một chuỗi kí tự vào
đầu. Dựa vào chuỗi kí tự đó, Server sẽ biết được Client đang yêu cầu gì và
đáp ứng lại Client.
• Nhập chuỗi từ bàn phím
• Gửi chuỗi tới Server
• Hiển thị chuỗi từ Server gửi đến. Gửi thơng điệp Chat đến một thành viên
nào đó có trong danh sách
• Gửi thơng báo đến một hoặc nhiều người hiện đang có mặt trong danh sách
• Cho phép trao đổi file với nhau thông qua chức năng truyền file
c. Xử lý đăng nhập:
• Khi một User yêu cầu đăng nhập hệ thống, Client sẽ gởi Username và

Password cho Server. Server sẽ kiểm tra Username và Password trong cơ
sở dữ liệu (nếu có) thì sẽ cho phép đăng nhập. Khi đăng nhập thành công,
Server sẽ hiện giao diện gồm danh sách các phịng chat. Sau đó User sẽ
chọn một phòng bất kỳ, và tên User sẽ hiện trong danh sách online. Đồng
thời cũng gửi thông báo đến các Users khác có đăng nhập vào trong phịng
là User này mới Online.

17IT3

Trang 21


ĐỒ ÁN CƠ SỞ 4

d. Xử lý đăng ký:
• Khi một User yêu cầu đăng nhập hệ thống mà không có Username và
Password, thì sẽ có chức năng hỗ trợ đăng ký tài khoản, mật khẩu. Khi
nhập Username và Password thì dữ liệu sẽ được thêm vào cơ sở dữ liệu.
Khi đó người dùng sẽ có Username và Password để đăng nhập vào hệ
thống.
e. Gửi tin nhắn:
• Khi các User đăng nhập và chọn một phịng chat bất kỳ, thì sẽ mở ra giao
diện phịng đó để các User trị chuyện với nhau, gửi hình ảnh, biểu cảm và
tin nhắn.
f. Truyền file:
• Chức năng truyền file sẽ hỗ trợ User gửi file thơng qua chức năng tìm kiếm
các file trong hệ thống. Khi chọn xong sẽ hiện ra đường dẫn của file, nhập
tên người nhận và User được nhận sẽ được thông báo đã nhận file và hệ
thống sẽ hiện ra nơi để lưu file. (chức năng này chỉ làm được một phần vì
lỗi)

3.4 Kết quả:
3.4.1 Giao diện:
a. Form trạng thái:

17IT3

Trang 22


ĐỒ ÁN CƠ SỞ 4

Hình 01. Trạng thái server.
Ở đây, sẽ hiện ra trạng thái các user đang nhập vào để trò chuyện và tạng
thái dừng trò chuyện.
b. Form đăng nhập:

17IT3

Trang 23


ĐỒ ÁN CƠ SỞ 4

Hình 02. Form đăng nhập
Sau khi đăng nhập, người dùng sẽ tự động thêm vào trạng thái và chuyển
vào trang chat.
c. Form đăng ký:

17IT3


Trang 24


ĐỒ ÁN CƠ SỞ 4

Hình 03. Form đăng ký
d. Cơ sở dữ liệu:

e. Truyền file:
17IT3

Trang 25


×