nodejs - xây dựng ứng dụng realtime

28
NGHIÊ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 Sinh viên: Nguyễn Minh Trí Lớp: ĐHTH8BLT - MSSV: 12084111 ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH

Upload: minh-tri-nguyen

Post on 16-Dec-2014

972 views

Category:

Technology


1 download

DESCRIPTION

Xây dựng ứng dụng Realtime với NodeJS

TRANSCRIPT

Page 1: NodeJS - Xây dựng ứng dụng Realtime

NGHIÊ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

Sinh viên: Nguyễn Minh Trí

Lớp: ĐHTH8BLT - MSSV: 12084111

ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH

Page 2: NodeJS - Xây dựng ứng dụng Realtime

Nộ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

Page 3: NodeJS - Xây dựng ứng dụng Realtime

1. 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…

Page 4: NodeJS - Xây dựng ứng dụng Realtime

1. Tổng quan ứng dụng thời gian thực

Mô hình ứng dụng thời gian thực

Page 5: NodeJS - Xây dựng ứng dụng Realtime

Nộ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

Page 6: NodeJS - Xây dựng ứng dụng Realtime

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

Page 7: NodeJS - Xây dựng ứng dụng Realtime

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

Page 8: NodeJS - Xây dựng ứng dụng Realtime

2. Giới thiệu NodeJS, SocketIO

- Ở mô hình Non-Blocking, ứng dụng vẫn có thể tiếp tục chạy mà không bị khóa

- Điều này giúp ứng dụng cải thiện được thời gian xử lý cũng như tương tác nhiều hơn với người dùng

Page 9: NodeJS - Xây dựng ứng dụng Realtime

Nộ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

Page 10: NodeJS - Xây dựng ứng dụng Realtime

3. 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,…

Page 11: NodeJS - Xây dựng ứng dụng Realtime

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

Page 12: NodeJS - Xây dựng ứng dụng Realtime

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

Page 13: NodeJS - Xây dựng ứng dụng Realtime

Nộ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

Page 14: NodeJS - Xây dựng ứng dụng Realtime

4. 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í

Page 15: NodeJS - Xây dựng ứng dụng Realtime

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

Page 16: NodeJS - Xây dựng ứng dụng Realtime

Bảng tính năng Phongap hỗ trợ

- Đa số các tài nguyên trên 2 hệ điều hành có thị trường lớn nhất hiện nay là iOS và Android đều được hỗ trợ đây đủ

- Những tính năng trên các nền tảng khác vẫn đang được phát triển theo từng ngày

Page 17: NodeJS - Xây dựng ứng dụng Realtime

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

Page 18: NodeJS - Xây dựng ứng dụng Realtime

Nộ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

Page 19: NodeJS - Xây dựng ứng dụng Realtime

5. 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…)

Page 20: NodeJS - Xây dựng ứng dụng Realtime

5. Xây dựng ứng dụng

Chức năng chính của hệ thống: Đăng nhập / đăng ký người chơi mới

Hệ thống phòng chia theo từng cấp độ

Game đối kháng đua xe

Chức năng thống kê: 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

Page 21: NodeJS - Xây dựng ứng dụng Realtime

5. Xây dựng ứng dụng

Game: Lưu trữ thông tin các gameRoom: Lưu trữ danh sách phòngRacer_Result: Lưu trữ các kết quả của người chơiRacer_Text: Lưu trữ các đoạn text User: Lưu trữ thông tin của người dùng

Page 22: NodeJS - Xây dựng ứng dụng Realtime

5. Xây dựng ứng dụng

Mô hình Usecase

- Người dùng phải đăng nhập để có thể sử dụng hệ thống nếu chưa có tài khoản phải đăng ký mới.

- Sau khi đăng nhập người dùng có thể chọn bàn phù hợp để bắt đầu chơi

- Các kết quả chơi được của người dùng được lưu lại để người dùng có theo dõi những lần kế tiếp

Page 23: NodeJS - Xây dựng ứng dụng Realtime

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

Page 24: NodeJS - Xây dựng ứng dụng Realtime

Nộ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

Page 25: NodeJS - Xây dựng ứng dụng Realtime

6. 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).

Page 26: NodeJS - Xây dựng ứng dụng Realtime

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

Page 27: NodeJS - Xây dựng ứng dụng Realtime

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

Page 28: NodeJS - Xây dựng ứng dụng Realtime

CÁ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