V. Thiết kế giao diện
3. Xây dựng chuẩn kết nối cho giao thức Socket
Trong kết nối socket, server sẽ mở cổng(port) để giao tiếp với các client. Sau khi clietn kết nối thành công với server, việc truyền và nhận dữ liệu giữa server và client sẽ được thực hiện thông qua chuẩn mà server và client đã được thỏa thuận. Khi cần yêu cầu dữ liệu từ server, client sẽ gửi một gói tin yêu cầu lên server, server sẽ xử lý dữ liệu và trả về các gói tin cho client. Với việc mong muốn giảm số lương connection cho server, phía client sẽ chỉ tạo một socket để giao tiếp với server. Khi mất kết nối hay timeout phía clietn sẽ khởi tạo lại kết nối socket và tiếp tục nói chuyện với server.
Đơn vị truyền nhận dữ liệu là một gói tin(Packet). Gói tin này sẽ được server và client thỏa thuận để giao tiếp với nhau. Mỗi packet bao gồm phần header và phần data. Header sẽ quy định phần data. Khi server hay client nhận được một gói tin, đầu tiên nó sẽ đọc header để nhận dạng phần data, sau đó sẽ đọc hết phần data. Bản chất phần data gửi về cũng chỉ là một mảng bytes, khi client nhận được gói tin thì tùy vào header mà client sẽ tạo ra một xâu, một ảnh,… từ mảng bytes đó. Trong chương này em không đề cập tới format gói tin của giao thức(vấn đề này em sẽ trình bày cụ thể ở chương Xây dựng module kết nối), ….
Cũng như kết nối HTTP, Socket cũng có 3 dạng gói tin để gửi yêu cầu lên server. Trong chương này em sẽ trình bày dữ liệu mà client nhận được khi gửi yêu cầu lên server. Đó là :
- Định dạng gói tin chuyên mục do server trả về - Định dạng gói bản tin do server trả về
3.1 Định dạng gói tin chuyên mục do server trả về
Format gói tin chuyên mục như sau:
Type&&Parent_id&&Cate_id#Title&&Total
Trong đó:
- Total : Tổng số chuyên mục ( nhằm phân trang)
- Cate_id : Id của chuyên mục đó.
- Parent_id : Id của chuyên mục cha của chuyên mục đó.
- Type : Kiểu của chuyên mục – dùng để xác định action khi chọn chuyên mục đó. (Trong trường hợp này là NEWS)
Mỗi trường dữ liệu trả về cách nhau bởi “&&”.
3.2 Định dạng gói bản tin do server trả về
Format gói tin trả về như sau:
Type&&Parent_id&&Letter_id#Title#Date#Ìno&&Total&& Trong đó:
- Total : Tổng số bản ( nhằm phân trang)
- Letter_id : Id của bản tin đó.
- Parent_id : Id của chuyên mục cha của bản tin đó. (Ở đây là Cate_id)
- Type : Kiểu của chuyên mục – dùng để xác định action khi chọn chuyên mục đó. (Trong trường hợp này là NEWS).
- Date : Ngày đăng của bản tin đó.
- Info : Thông tin của bản tin đó.
- Optional : Tùy chọn thêm gồm các tham số phân cách nhau bởi dấu #
Mỗi trường dữ liệu trả về cách nhau bởi “&&”.
3.3 Định dạng tin chi tiết do server trả về
Format gói tin trả về như sau:
Type&&Parent_id&&ContentDetail&&Link&&LinkDescription&& Trong đó:
- Parent_id : Id của chuyên mục cha của tin chi tiết đó. (Ở đây là Letter_id)
- Type : Kiểu của chuyên mục – dùng để xác định action khi chọn chuyên mục đó. (Trong trường hợp này là NEWS).
- ContentDetail : Thông tin của tin chi tiết đó.
- Link : Đường dẫn link ảnh.
- LinkDescription : Mô tả link ảnh.
CHƯƠNG IV: CÀI ĐẶT VÀ TRIỂN KHAI