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 idtớiGCM serverđể đăng kí. - Nếu các thông số hợp lệ,
GCM serversẽ trả vềregistration idcho client. - Sau khi nhận được
registration idmàGCM servertrả về, client sẽ gửiregistration idnày lên server (do ta tự xây dựng). - Server nhận
registration idvà 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 servervới danh sách cácregistration id. GCM serversẽ thông báo tin nhắn tới các client (dựa vàoregistration idmà 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 namevàpackage namevà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
gcmvà 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.phpchứ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.phpdù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.phpcó 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