Giới thiệu NodeJS, SocketIONodeJS - Xây dựng từ bộ thư viện Javascript V8 by Google - Sử dụng Javascript để lập trình cho cả Client và Server - Mô hình Non-Blocking IO - Xử lý theo hướn
Trang 1NGHIÊN CỨU REAL TIME, PHONEGAP.
XÂY DỰNG G AME ĐỐI KHÁNG
TRỰC TUYẾN TRÊN ĐA NỀN TẢNG.
GVHD: NGUYỄN PHÚC HƯNG
ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH
Trang 2Nội dung thuyết trình
1 Tổng quan ứng dụng thời gian thực
2 Giới thiệu NodeJS, SocketIO
3 Tổng quan đa nền tảng
4 Giới thiệu Phonegap
5 Xây dựng ứng dụng
6 Kết quả đạt được
Trang 31.Tổng quan ứng dụng thời gian thực
Thời kì Web 1.0
Thời kì Web 2.0
- Xuất hiện công nghệ AJAX, Websoket…
- Đi kèm thư viện hỗ trợ: jQuery, Prototype,…
Thời kì Web hiện đại
- Sử dụng công nghệ NodeJS, Socket.IO, AngularJS…
Trang 41.Tổng quan ứng dụng thời gian thực
Mô hình ứng dụng thời gian thực
Trang 5Nội dung thuyết trình
1 Tổng quan ứng dụng thời gian thực
2 Giới thiệu NodeJS, SocketIO
3 Tổng quan đa nền tảng
4 Giới thiệu Phonegap
5 Xây dựng ứng dụng
6 Kết quả đạt được
Trang 62 Giới thiệu NodeJS, SocketIO
NodeJS
- Xây dựng từ bộ thư viện Javascript V8 (by Google)
- Sử dụng Javascript để lập trình cho cả Client và Server
- Mô hình Non-Blocking IO
- Xử lý theo hướng dự kiện (event-driven)
- Nhiều thư viện hỗ trợ thông qua npm
Trang 72 Giới thiệu NodeJS, SocketIO
SocketIO
- Là một mô hình websocket được đóng gói để chạy với NodeJS
- Giữ cho Client và Server luôn ở trạng thái "keep-alive“
- Khả năng phản hồi nhanh với các yêu cầu
- Hỗ trợ các ứng dụng chạy thời gian thực
Trang 82 Giới thiệu NodeJS, SocketIO
Trang 9Nội dung thuyết trình
1 Tổng quan ứng dụng thời gian thực
2 Giới thiệu NodeJS, SocketIO
3 Tổng quan đa nền tảng
4 Giới thiệu Phonegap
5 Xây dựng ứng dụng
6 Kết quả đạt được
Trang 103.Tổng quan đa nền tảng
Trên phương diện WEB
- Ứng dụng có thể chạy trên các trình duyệt khác nhau
Ví dụ: Trình duyệt: Chrome, Firefox, Safari, IE,…
Trên phương diện rộng:
- Ứng dụng chạy được trên các hệ điều hành và thiết bị khác nhau
Ví dụ:
Hệ điều hành: Windows, iOS, Android,
Thiết bị: PC, Mobile, Wearable,…
Trang 113.Tổng quan đa nền tảng
Native Application:
- Là những ứng dụng được xây bằng ngôn ngữ lập trình tương ứng với nền tảng
Ví dụ: iOS (Object-C), Android (Java), WindowsPhone (C#)
Web Application:
- Là các ứng dụng được xây dựng trên nền tảng Web (điển hình là HTML5
Hybird Application:
- Là ứng dụng lai giữa 2 khái niệm Native App và Web App trên
Ví dụ: Ứng dụng Native mở một WebView nằm bên trong ứng dụng
Trang 123.Tổng quan đa nền tảng
- Đòi hỏi phải tốn nhiều thời gian và công sức
- Xây dựng ứng dụng đa nền tảng là thách thức lớn đối với các nhà phát triển
Trang 13Nội dung thuyết trình
1 Tổng quan ứng dụng thời gian thực
2 Giới thiệu NodeJS
3 Tổng quan đa nền tảng
4 Giới thiệu Phonegap
5 Xây dựng ứng dụng
6 Kết quả đạt được
Trang 144.Giới thiệu Phonegap
- Được Adobe mua lại từ Nitobi (nhà phát triển ban đầu) vào 10/2011
- Là công cụ hỗ trợ phát triển ứng dụng đa nền tảng
- Ví dụ: iOS, Android, WindowsPhone, Bada, WebOS…
- Sử dụng HTML, CSS và JavaScript xây dựng ứng dụng
- Hoàn toàn miễn phí
Trang 154.Giới thiệu Phonegap
- Sử dụng Cordova dể tương tác với các
thành phần bên dưới của ứng dụng
- Giúp ứng dụng sử dụng được các tài nguyên thiết bị mà không cần thông qua native code
Trang 174.Giới thiệu Phonegap
Ứng dụng được đóng gói và đưa sang các nền tảng khác nhờ Phonegap
Trang 18Nội dung thuyết trình
1 Tổng quan ứng dụng thời gian thực
2 Giới thiệu NodeJS
3 Tổng quan đa nền tảng
4 Giới thiệu Phonegap
5 Xây dựng ứng dụng
6 Kết quả đạt được
Trang 195.Xây dựng ứng dụng
- Kết hợp NodeJS và Phonegap để xây dựng một game đối kháng theo thời
gian thực và trên đa nền tảng với yêu cầu sau:
- Khả năng tương tác và phản hồi nhanh (real time) khi người chơi thực
hiện thao tác trên hệ thống
- Chạy được trên các nền tảng khác nhau (cross platform) ở môi trường
Web cũng như là những thiết bị động phổ thông (Mobile, Tablet…)
Trang 20 Thống kế số trận đấu của những người tham gia game
Thống kê số lượt người dùng truy cập trong ngày
Thống kê số lượt người dùng đang trực tuyến
Trang 215.Xây dựng ứng dụng
Game: Lưu trữ thông tin các game
Room: Lưu trữ danh sách phòng
Racer_Result: Lưu trữ các kết
quả của người chơi
Racer_Text: Lưu trữ các đoạn
text
User: Lưu trữ thông tin của người
dùng
Trang 235.Xây dựng ứng dụng
Sơ đồ Class
- Ở mô hình client-server này với mỗi hàm ở phía client
sẽ có 1 hàm xử lý bên phía server tương ứng (theo
hướng sự kiện)
- Cấu trúc truyền nhận dữ liệu giữa 2 bên client –
server phải được thống nhất để tránh thất thoát và sai
lệch dữ liệu khi truyền nhận
- Lớp liên quang đến quản lý người dùng được tách biệt
với các lớp xử lý chức năng
Trang 24Nội dung thuyết trình
1 Tổng quan ứng dụng thời gian thực
2 Giới thiệu NodeJS
3 Tổng quang đa nền tảng
4 Giới thiệu Phonegap
5 Xây dựng ứng dụng
6 Kết quả đạt được
Trang 256 Kết quả đạt được
Ưu điểm
- Ứng dụng được xây dựng gọn và nhẹ được quản lý bởi socket.io.
- Cho phép nhiều người cùng tham gia và tương tác thời gian thực
- Cách chơi mới lạ và độc đáo kích thích sự ganh đua
- Được tích hợp trên nhiều nền tảng nên rất dễ dàng để tiếp cận với nhiều người dùng (Web hoặc thiết bị di động)
Trang 266 Kết quả đạt được
Khuyết điểm
- Chưa liên kết với các mạng xã hội để tăng tính tương tác
- Ứng dụng còn đơn giản, chưa xây dựng các chức năng thống kê theo dõi hành vi của từng người chơi
- Các vấn đề bảo mật dữ liệu chưa được quan tâm trong ứng dụng
Trang 276 Kết quả đạt được
Hướng phát triển
- Phát triển thêm các game khác dựa trên mô hình ứng dụng theo thời gian thực để làm phong phú hệ thống
- Tích hợp với mạng xã hội để tăng tính tương tác giữa các người chơi với
nhau như: Facebook, Twitter, Zing
- Xây dựng các hệ thống vật phẩm trong game, hệ thống thanh toán trực tuyến để sản phẩm có thể được thương mại hóa
Trang 28CÁM ƠN QUÝ THẦY CÔ VÀ CÁC BẠN
ĐÃ THEO DÕI THUYẾT TRÌNH
Bài thuyết trình đang được chia sẽ tại:
http://www.slideshare.net/minhtringuyen1709