Cấu trúc module

Một phần của tài liệu LUẬN VĂN: XÂY DỰNG HỆ THỐNG DỊCH VỤ GIÁ TRỊ GIA TĂNG TRÊN NỀN DỊCH VỤ NHẮN TIN TỨC THÌ QUA HỆ THỐNG TIN NHẮN TỨC THÌ docx (Trang 47 - 50)

Ở chương trình chính sẽ sử dụng biến xmpp là một thể hiện của XMPP, khai báo các tham số cho dùng để đăng nhập. Sau đó gọi hàm

~ 38 ~

Hàm này là một hàm đặc biệt của xmpp. Hàm này dùng để đăng ký hàm xử lý sự kiện

khi nhận thông điệp. Ở trên là đăng ký cho hàm controller để xử lý sự kiện nhận thông điệp.

Hàm controller có cấu trúc như sau:

def controller (self,conn,mess):

Biến conn là Client, dùng để gửi thông điệpconn.send().

Biến mess là thông điệp nhận được. Dùng hàm sau để lấy ra người gửi thông điệp:

text = message.getBody() user = message.getFrom()

Hàm controller sẽ xử lý các text nhận được từ người dùng, phân tích chuỗi nhập text mà người dùng gửi đến để tìm ra dịch vụ thích hợp.

Ví dụ

/news vnexpress

Dịch vụ cần gọi là news. Khi gọi dịch vụ cần cung cấp một tham số là vnexpress. Cũng giống như cấu trúc module Yahoo bot . Dịch vụ được viết sao cho đảm bảo tính đơn giản. Trong dịch vụ phải thực thi giao diện IMCMD, nói cách khác thì phải có hai hàm đặc biệt là hàm doit auto_run. Hàm doit nhận hai tham số chính là chuỗi tham

số và nick Google Talk gửi.

def doit (args, sender):

args: chuỗi tham số do người dùng đưa vào

sender: nick Google Talk của người dùng

Hàm doit trả về một chuỗi. Controller sẽ nhận chuỗi đó sau đó gửi cho người dùng thông qua biến XMPP. Bản thân Controller không phải là một tiến trình, hoặc một

thread (luồng) đặc biệt, đơn giản chỉ là một hàm bắt sự kiện nhận gói tin mesage.

Hàm doit từ dữ liệu đầu vào của người dùng, tùy mỗi loại mà có những cách xử lý

khác nhau. Có thể sẽ kết nối CSDL hoặc parse các RSS trên Internet để lấy về nội

~ 39 ~

Hàm auto_run là hàm được gọi từ tiến trình Autorun. Tiến trình Autorun sẽ được kích

hoạt trong chương trình chính. Khi khởi động, tiến trình Autorun sẽ đọc file config.txt.

Trong file config.txt này sẽ liệt kê các dịch vụ muốn thực hiện chế độ chạy tự động.

Tiến trình Autorun sẽ lần lượt gọi các dịch vụ này thông qua hàm auto_run(im). (là một hàm trong giao diện IMCMD), với im là một thể hiện (instance) của XMPP. Hàm auto_run của dịch vụ sẽ tự xử lý dữ liệu (bằng nhiều cách) sau đó gửi tin nhắn thông

qua biến im.

Đa phần các dịch vụ cung cấp chế độ chạy tự động (auto_run) đều không tự động xử

lý dữ liệu. Bởi vì nếu tự xử lý dữ liệu thì sẽ rất tốn tài nguyên. Vì vậy, việc xử lý và

lưu trữ dữ liệu đều được thực hiện ở hệ thống bên ngoài (có thể làm một nhà cung cấp

~ 40 ~ (adsbygoogle = window.adsbygoogle || []).push({});

CHƯƠNG 4. GIAO DIỆN WEB

Một phần của tài liệu LUẬN VĂN: XÂY DỰNG HỆ THỐNG DỊCH VỤ GIÁ TRỊ GIA TĂNG TRÊN NỀN DỊCH VỤ NHẮN TIN TỨC THÌ QUA HỆ THỐNG TIN NHẮN TỨC THÌ docx (Trang 47 - 50)