Bạn có một ứng dụng, bạn muốn gửi thông báo cho tất cả client mà không muốn mất phí.
Điều đó hoàn toàn có thể thực hiện được nếu bạn sử dụng dịch vụ Google Cloud Messaging (GCM) do Google cung cấp.
GCM là dịch vụ giúp bạn tương tác giữa client - server thông qua máy chủ GCM.
Trong bài viết này, mình sẽ giới thiệu, hướng dẫn các bạn các bước cơ bản để xây dựng ứng dụng Android sử dụng GCM (bao gồm cả client lẫn server).
1. Mô hình, cách vận hành của GCM
Quá trình hoạt động như sau:
- Client gửi
senderID
,application id
tớiGCM server
để đăng kí. - Nếu các thông số hợp lệ,
GCM server
sẽ trả vềregistration id
cho client. - Sau khi nhận được
registration id
màGCM server
trả về, client sẽ gửiregistration id
này lên server (do ta tự xây dựng). - Server nhận
registration id
và lưu nó vào CSDL (phục vụ cho việc quản lý, gửi thông báo sau này). - Mỗi khi muốn thông báo tới client, server sẽ gửi yêu cầu tới
GCM server
với danh sách cácregistration id
. GCM server
sẽ thông báo tin nhắn tới các client (dựa vàoregistration id
mà server cung cấp).
Đăng kí với Google Cloud Messaging
Để có được senderID
, application id
hãy làm như sau:
- Truy cập tới: https://developers.google.com/mobile/ để tạo nhanh project.
-
Tại đây, bạn cần nhập
App name
vàpackage name
vào khung tương ứng. Sau đó chọn tiếp tục. - Ở bước này, bạn sẽ bật các API dùng cho ứng dụng của mình (ở đây chỉ demo GCM nên mình chỉ bật Cloud Messaging) bằng cách nhấn vào
Enable Cloud Messaging
. Kết quả thu được: Bạn có thể thấy 2 giá trị mà mình cần sử dụng: Server API Key (đươc sử dụng khi server gửi yêu cầu tới GCM server), Sender ID (dùng cho client). - Nhấn
Generate configuration files
để tạo filegoogle-service.json
, đây là file config được sử dụng tại client. Cuối cùng là tải filegoogle-service.json
, và di chuyển vào thư mục/app/
trong project của bạn.
Bạn có thể tham khảo tài liệu hướng dẫn chính thức của Google tại đây
2. Triển khai ứng dụng.
Trong bài viết này, mình sẽ hướng dẫn xây dựng server side trước, phía client sẽ có trong bài viết tiếp theo.
2.1 Xây dựng Server side
Trong tutorial này, mình sẽ sử dụng PHP
để xây dựng server cũng như MySQL
làm cơ sở dữ liệu.
Xây dựng CSDL
- Mở phpmyadmin để tạo database với tên là
gcm
. - Vào database
gcm
và truy vấn câu query dưới để tạo bảnggcm_users
Xây dựng server
- Tạo file
config.php
để lưu thông tin về database và google api key. - Một file khác
db_connect.php
để tiến hành kết nối với CSDL (bao gồm việc open và close). - File
db_functions.php
chứa các phương thức thao tác với CSDL như thêm mới (storeUser), lấy toàn bộ danh sách user (getAllUsers). Bạn có thể xem nội dung chi tiết tại đây; - File
GCM.php
dùng để gửi yêu cầu thông báo tới GCM server. - Tạo file
register.php
để nhận truy vấn từ client, và lưu trữ thông tin vào trong CSDL. Các tham số client cần phải gửiname
,email
,registration id
. - Tạo file
send_message.php
để gửi thông báo tới client thông qua GCM server. - Cuối cùng là tạo file
index.php
có nhiệ̣m vụ̣ hiể̉n thị̣ danh sách các client đã đăng kí , và cho phép gửi tin nhắn tới từng thiết bị̣. Do code khá dài nên mình sẽ dẫn link để các bạn tham khảo. index.php
Như vậy là đã xây dựng xong server side, giao diện quản lý sẽ tương tự như sau
Lưu ý: Chỉ xây dựng client side
khi bạn đã xây dựng server side
thành công.
Trong bài viết tiếp theo, mình sẽ hướng dẫn cách xây dựng phía client
.
Toàn bộ code phần server bạn có thể tham khảo tại đây