Tài liệu Xây dựng ứng dụng instant message theo giao thức xmpp

  • Số trang: 107 |
  • Loại file: PDF |
  • Lượt xem: 798 |
  • Lượt tải: 5
nguyetha

Đã đăng 8489 tài liệu

Mô tả:

TRƯỜNG ĐẠI HỌC MỞ TP. HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN KHÓA LUẬN TỐT NGHIỆP NGÀNH TIN HỌC XÂY DỰNG ỨNG DỤNG INSTANT MESSAGE THEO GIAO THỨC XMPP SVTH: MSSV: Ngành: GVHD: Trần Trung Thành 10761278 Tin Học Thầy Huỳnh Minh Quang Thành phố Hồ Chí Minh – Năm 2011 Báo cáo khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang LỜI CẢM ƠN Trong suốt quá trình học tại trường Đại học Mở Tp Hồ Chí Minh, em đã được các thầy cô hướng dẫn và truyền đạt những kiến thức chuyên môn cần thiết. Ngoài ra, em còn được làm việc nghiêm túc, tích cực trên tinh thần độc lập sáng tạo. Đây là những kinh nghiệm quý báu trước khi bắt tay vào làm việc trong tương lai. Quá trình thực hiện khóa luận tốt nghiệp vừa qua là cơ hội để em có thể áp dụng những kiến thức mà trong suốt 4 năm qua em đã được học tập, cùng với hướng dẫn tận tình của thầy Huỳnh Minh Quang em đã hoàn thành đề tài của mình. Em xin chân thành cảm ơn thầy Huỳnh Minh Quang đã tận tình giúp đỡ, hướng dẫn em trong suốt thời gian thực hiện khóa luận, chúc thầy sức khỏe và đạt được nhiều thành công trong sự nghiệp giảng dạy và nghiên cứu khoa học. Sinh Viên Trần Trung Thành SVTH: Trần Trung Thành i Báo cáo khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… SVTH: Trần Trung Thành ii Báo cáo khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… SVTH: Trần Trung Thành iii Báo cáo khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Từ nguyên gốc IM Instant Messaging XMPP Extensible Messaging and Presence Protocol XML Extensible Markup Language JID JabberID JQDN Full Qualified Domain Name TLD Top Level Domain SASL Simple Authentication and Security Layer TLS Transport Layer Security HTML Hypertext Markup Language XHTML-IM Extensible Hypertext Markup Language Instant Messaging XEP XMPP Extension Protocol MUC Multi-User Chat RTP Real-Time Transport Protocol UDP User Datagram Protocol SVTH: Trần Trung Thành iv Báo cáo khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang MỤC LỤC CHƯƠNG 1: TỔNG QUAN ...................................................... 1 1.1. Tổng quan về đề tài .....................................................................................2 1.2. Các vấn đề đã thực hiện trong đề tài ...........................................................2 1.3. Bố cục của khóa luận ..................................................................................3 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT XMPP ............................. 4 2.1. Messaging and Presence Protocol (XMPP) ................................................5 2.1.1. Giới thiệu..............................................................................................5 2.1.2. Kiến trúc ...............................................................................................7 2.1.3. Địa chỉ (Address) .................................................................................8 2.1.4. Streaming XML ...................................................................................9 2.1.5. Communication Promitives................................................................10 2.2. Kết nối và bảo mật ....................................................................................14 2.2.1. Tạo kết nối giữa client – server ..........................................................14 2.2.2. Các phương thức chứng thực .............................................................17 2.2.3. Mã hóa kết nối....................................................................................18 2.3. Sự hiện diện (Presence) .............................................................................19 2.3.1. Đăng ký sự hiện diện..........................................................................19 2.3.2. Thông báo sự hiện diện ......................................................................21 2.3.3. Thông tin trạng thái ............................................................................22 2.3.4. Độ ưu tiên ...........................................................................................23 2.3.5. Thông báo sự hiện diện trực tiếp........................................................23 2.3.6. Offline ................................................................................................24 2.3.7. Quản lí danh sách (roster) ..................................................................24 2.4. Instant Messaging......................................................................................25 2.4.1. Trạng thái trò chuyện (Chat States) ...................................................26 2.4.2. VCard .................................................................................................27 2.4.3. Định dạng tin nhắn .............................................................................28 2.5. Khám phá dịch vụ (Service Discovery) ....................................................28 2.6. Data Forms ................................................................................................30 SVTH: Trần Trung Thành v Báo cáo khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang 2.7. Chat nhóm (Multi-User Chat) ...................................................................32 2.7.1. Cơ bản về Multi-User Chat ................................................................32 2.7.2. Phân quyền trong phòng ....................................................................35 2.7.3. Nick name ..........................................................................................40 2.7.4. Tạo phòng chat ...................................................................................42 2.7.5. Mời bạn vào phòng chat .....................................................................43 2.8. Jingle và File Transfer...............................................................................44 2.8.2. Tạo phiên để thực hiện một cuộc gọi .................................................46 2.8.3. Tạo phiên gửi file ...............................................................................50 2.8.4. In-Band Bytestreams ..........................................................................55 CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG .... 57 3.1. Giới thiệu...................................................................................................58 3.2. Sơ đồ Use Case .........................................................................................58 3.3. Thiết kế các lớp .........................................................................................71 3.3.1. Cơ sở dữ liệu ......................................................................................71 3.3.2. Các lớp phía Server ............................................................................72 3.3.3. Các lớp phía Client.............................................................................82 CHƯƠNG 4: HIỆN THỰC ỨNG DỤNG............................... 88 4.1. Các chức năng đã hiện thực được .............................................................89 4.2. Một số giao diện ứng dụng........................................................................89 4.3. Cài đặt và sử dụng .....................................................................................92 4.3.1. Yêu cầu hệ thống................................................................................92 4.3.2. Cài đặt ................................................................................................92 4.3.3. Sử dụng ..............................................................................................93 CHƯƠNG 5: KẾT LUẬN ........................................................ 95 5.1. Một số kết quả đạt được ............................................................................96 5.2. Hạn chế......................................................................................................96 5.3. Hướng phát triển .......................................................................................96 TÀI LIỆU THAM KHẢO ........................................................ 97 SVTH: Trần Trung Thành vi Báo cáo khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang DANH MỤC HÌNH Hình 2.1: Kiến trúc phân cấp client – server XMPP .............................................. 7 Hình 2.2: Cấu trúc tương tác của stanza IQ ......................................................... 12 Hình 2.3: Quá trình bắt tay đăng ký sự hiện diện ................................................ 20 Hình 2.4: Các trạng thái trò chuyện trong XMPP ................................................ 26 Hình 2.5: Quy trình tương tác dữ liệu Data Form ................................................ 31 Hình 2.6: Quá hoạt động của một phiên Jingle .................................................... 45 Hình 3.1: Mô hình tổng quát ứng dụng ................................................................ 58 Hình 3.2: Mô hình thao tác sau đăng nhập .......................................................... 59 Hình 3.3: Lưu đồ kết nối ...................................................................................... 59 Hình 3.4: Lưu đồ đăng ký .................................................................................... 60 Hình 3.5: Lưu đồ ngắt kết nối .............................................................................. 61 Hình 3.6: Lưu đồ đăng nhập ................................................................................ 62 Hình 3.7: Lưu đồ đăng xuất ................................................................................. 63 Hình 3.8: Lưu đồ thêm bạn .................................................................................. 64 Hình 3.9: Lưu đồ xóa bạn .................................................................................... 65 Hình 3.10: Lưu đồ gửi tin nhắn ............................................................................ 66 Hình 3.11: Lưu đồ tạo phòng chat ....................................................................... 67 Hình 3.12: Lưu đồ mời bạn vào phòng chat ........................................................ 68 Hình 3.13: Lưu đồ gửi tin nhắn lên phòng chat ................................................... 69 Hình 3.14: Lưu đồ gửi file ................................................................................... 70 Hình 3.15: Bảng Account ..................................................................................... 71 Hình 3.16: Bảng ContactList................................................................................ 71 Hình 3.17: Mô hình cơ sở dữ liệu ........................................................................ 72 Hình 3.18: Sơ đồ các lớp phía Server .................................................................. 72 Hình 3.19: Lớp Parser .......................................................................................... 73 Hình 3.20: Lớp JID .............................................................................................. 74 SVTH: Trần Trung Thành vii Báo cáo khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang Hình 3.21: Lớp CADO ......................................................................................... 74 Hình 3.22: Lớp Tag .............................................................................................. 75 Hình 3.23: Lớp ClientGroup ................................................................................ 76 Hình 3.24: Lớp Roster.......................................................................................... 76 Hình 3.25: Lớp CServerApp ................................................................................ 76 Hình 3.26: Lớp Base64 ........................................................................................ 77 Hình 3.27: Lớp Util .............................................................................................. 77 Hình 3.28: Lớp ConnectionClient ........................................................................ 77 Hình 3.29: Lớp ConnectionServer ....................................................................... 78 Hình 3.30: Lớp ConnectionBase. ......................................................................... 78 Hình 3.31: Giao diện TagHandler ........................................................................ 79 Hình 3.32: Giao diện ConnectionDataHandler .................................................... 79 Hình 3.33: Lớp ClientHandler ............................................................................. 80 Hình 3.34: Giao diện ConnectionHandler............................................................ 80 Hình 3.35: Giao diện ServerHandler.................................................................... 81 Hình 3.36: Lớp CServerDlg ................................................................................. 82 Hình 3.37: Sơ đồ các lớp phía Client ................................................................... 83 Hình 3.38: Giao diện NotifyHandler.................................................................... 83 Hình 3.39: Lớp ClientProcess .............................................................................. 84 Hình 3.40: Lớp CChatDlg .................................................................................... 85 Hình 3.41: Lớp CLoginDlg .................................................................................. 85 Hình 3.42: Lớp CRegisterDlg .............................................................................. 86 Hình 3.43: Lớp CClientApp ................................................................................. 86 Hình 3.44: Lớp CAddContactDlg ........................................................................ 86 Hình 4.1: Giao diện Server................................................................................... 89 Hình 4.2: Giao diện chính Client ......................................................................... 90 Hình 4.3: Cửa sổ đăng ký tài khoản ..................................................................... 90 SVTH: Trần Trung Thành viii Báo cáo khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang Hình 4.4: Cửa sổ đăng nhập ................................................................................. 91 Hình 4.5: Cửa sổ thêm bạn ................................................................................... 91 Hình 4.6: Cửa sổ khi có yêu cầu thêm bạn .......................................................... 91 Hình 4.7: Cửa sổ chat ........................................................................................... 92 SVTH: Trần Trung Thành ix Khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang CHƯƠNG 1: TỔNG QUAN SVTH: Trần Trung Thành 1 Khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang 1.1. Tổng quan về đề tài Trong cuộc sống, nhu cầu thông tin liên lạc là hết sức cần thiết. Đặc biệt, trong môi trường mà công nghệ thông tin phát triển một cách nhanh chóng như hiện này thì các công nghệ mới liên tục xuất hiện nhằm phục vụ nhu cầu thông tin liên lạc cho con người. Và cũng theo một xu hướng tất yếu khi càng có nhiều công nghệ thì đòi hỏi của người sử dụng càng cao, yêu cầu việc thông tin liên lạc phải dễ dàng, nhanh chóng, hiệu quả và tiện lợi. Instant Messaging (IM) ra đời cũng từ những nhu cầu thực tế đó. IM là một hình thức giao tiếp thời gian thực giữa các máy tính trên mạng hoặc các thiết bị di động có nối mạng. Người sử dụng có thể trao đổi các tin nhắn tương tự như email hoặc tham gia vào các cuộc hội thoại nhóm, tuy nhiên IM khác email ở chỗ các tin nhắn này được gửi đi và nhận một cách nhanh chóng và các thao tác gửi nhận cũng đơn giản hơn rất nhiều so với email. Về cơ bản mục tiêu của các ứng dụng Instant Messaging là trao đổi các tin nhắn văn bản, tuy nhiên theo xu hướng phát triển và yêu cầu của người sử dụng ngày càng cao thì các ứng dụng IM hiện nay tích hợp thêm rất nhiều chức năng, có thể kể ra như: trao đổi hình ảnh, âm thanh, hình ảnh, các tệp dữ liệu, ngoài ra một số ứng dụng còn cho phép người sử dụng nghe nhạc trực tuyến, chơi game, xem tin tức, … Với việc phát triển mạnh mẽ của các ứng dụng Instant Messaging thì một loạt các giao thức để hiện thực ứng IM cũng ra đời. Có thể kể ra như MSNP của Windows Live Messenger, OSCAR của AIM, Skype của Skype, YMSG của Yahoo Messenger, ... Đặc điểm chung của những giao thức này đều là những giao thức thương mại, chỉ phục vụ riêng cho ứng dụng của hãng sản xuất. Bên cạnh đó những giao thức mở như Extensible Messaging and Presence Protocol (XMPP) cũng ra đời như một hướng phát triển mới của các ứng dụng Instant Messaging, khi đó người sử dụng của các ứng dụng IM khác nhau có thể liên lạc với nhau dễ dàng, khác với sự tách biệt độc lập của những ứng dụng như AIM, Yahoo, Windows Live Messenger, … 1.2. Các vấn đề đã thực hiện trong đề tài SVTH: Trần Trung Thành 2 Khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang Để sử dụng giao thức XMPP cùng với Windows Socket API hiện thực một ứng dụng Instant Messaging, đề tài cần giải quyết những vấn đề sau: Ô Tìm hiểu chi tiết giao thức XMPP. Ô Dựa trên thư viện Windows Socket API và giao thức XMPP xây dựng các lớp hỗ trợ việc kết nỗi giữa client và server, mô tả cấu trúc XML, phân tích cấu trúc XML. Ô Cài đặt ứng dụng với những chức năng cơ bản và có thể mở rộng. 1.3. Bố cục của khóa luận Nội dung khóa luận gồm 5 chương: Ô Chương 1. Tổng quan. Ô Chương 2. Cơ sở lý thuyết XMPP. Ô Chương 3. Phân tích và thiết kế ứng dụng. Ô Chương 4. Hiện thực ứng dụng. Ô Chương 5. Kết luận. SVTH: Trần Trung Thành 3 Khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang CHƯƠNG 2: CƠ SỞ LÝ THUYẾT XMPP SVTH: Trần Trung Thành 4 Khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang 2.1. Messaging and Presence Protocol (XMPP) 2.1.1. Giới thiệu Extensible Messaging and Presence Protocol (XMPP) là một giao thức mở, trước kia có tên là Jabber. XMPP dựa trên nền tảng là cấu trúc XML (Extensible Markup Language), nói cụ thể hơn XMPP là con đường vận chuyển các gói tin XML giữa các thực thể trên mạng. Không giống như hầu hết các giao thức Instant Messaging khác, XMPP là một giao thức mở, chính vì điều này đã làm cho XMPP được sử dụng khá rộng rãi, bất cứ cá nhân nào đều có thể tiến hành triển khai một dịch vụ XMPP của riêng mình và hoàn toàn có thể tương thích với một số dịch vụ của một cá nhân khác. Và thông thường những ứng dụng này đều được cung cấp dưới dạng mã nguồn mở hoặc miễn phí, điều này sẽ là tiền đề để thu hút số một lượng lớn người sử dụng so với các ứng dụng Insant Messaging khác trong tương lai. Trong thời gian đầu Jabber chỉ tập trung phát triển hệ thống Instant Messaging, tuy nhiên với khả năng mở rộng của XML nên XMPP cũng đã được xây dựng để cung cấp các chức năng khá đa dạng và phong phú. Về cơ bản XMPP cung cấp các dịch vụ hỗ trợ sau: © Mã hóa đường truyền (Channel encryption): định nghĩa trong RFC-3920, cung cấp khả năng mã hóa kết nối giữa client – server hay giữa các server với nhau. © Xác thực (Authentication): định nghĩa trong RFC-3920, cung cấp khả năng xác thực một thực thể khi lần đầu tiên kết nối đến server. © Hiện diện (Presence): định nghĩa trong RFC-3921, cung cấp khả năng thông báo một thực thể có tồn tại trên mạng hay ko, đồng thời có thể kèm theo một số thông tin về thực thể đó. © Danh sách liên lạc (Contacts lists): định nghĩa trong RFC-3921, cung cấp khả năng lưu trữ danh sách liên lạc của một thực thể trên server. SVTH: Trần Trung Thành 5 Khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang © One-to-one messaging: được định nghĩa trong RFC-3920, cho phép 2 thực thể gửi tin nhắn qua lại với nhau. © Multi-party messaging: định nghĩa trong XEP-0045, cung cấp chức năng cho một thực thể tham gia vào một nhóm và trao đổi tin nhắn qua lại giữa các thực thể khác trong nhóm đó. © Thông báo (Notifications): được định nghĩa trong XEP-0060, cung cấp chức năng tượng tự với “multi-party messaging”, tuy nhiên đã được tối ưu hóa theo chiều từ một đến nhiều thực thể với một chủ đề cụ thể. © Service discovery: định nghĩa trong XEP-0030, cung cấp khả năng xác định các chức năng được cung cấp của một thực thể. © Capabilities advertisement: được định nghĩa trong XEP-0115, là một chức năng mở rộng của dịch vụ “presence”, xác định các hành vi xử lý có thể đáp ứng của một ứng dụng khi nhận được một thông điệp “presence” từ một ứng dụng khác. © Structured data forms: định nghĩa trong XEP-0004, cung cấp khả năng trao đổi thông tin có cấu trúc giữa các thực thể. © Workflow management: định nghĩa trong XEP-0050, thường được sử dụng kết hợp với data forms để quản lý các quy trình công việc. © Peer-to-peer media sessions: định nghĩa trong XEP-0166, cung cấp khả năng tạo và quản lý các phiên trong việc trao đổi các dữ liệu đa phương tiện như âm thanh, hình ảnh, tệp dữ liệu. Với số lượng dịch vụ đa dạng trên, XMPP cung cấp khả năng xây dựng các ứng dụng khá phong phú, sau đây là một số ứng dụng tiêu biểu: © Instant Messaging. © Groupchat. © Gaming. © System control. © Geolocation. SVTH: Trần Trung Thành 6 Khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang © Middleware and cloud computing. © Data syndication © Voice over IP © Identity services. 2.1.2. Kiến trúc XMPP sử dụng kiến trúc phân cấp client – server. Nghĩa là các client không kết nối và trao đổi thông tin trực tiếp với nhau mà phải thông qua server. Hình 2.1: Kiến trúc phân cấp client – server XMPP Nguồn: Oreilly (2009), XMPP The Definitive Guide, Trang 12 Điểm hay của việc sử dụng kiến trúc phân cấp client – server là có thể phân chia một cách rõ ràng các mối quan tâm trong việc xây dựng ứng dụng. Đối với việc phát triển client thì tập trung vào giao diện, mức độ tiện lợi cho người sử dụng, trong khi đó đối với phát triển server thì tập trung vào độ bảo mật, tin SVTH: Trần Trung Thành 7 Khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang cậy và khả năng mở rộng của ứng dụng. Nó đơn giản hơn rất nhiều trong việc tổ chứ quản lý các ứng dụng sử dụng công nghệ ngang hàng. Và do đó cộng đồng XMPP sẽ xây dựng client đơn giản nhất có thể, trong khi đó sự phức tạp sẽ được đẩy mạnh khi phát triển các server. Kiến trúc của XMPP có khá nhiều điểm tương đồng với kiến trúc World Wide Web và Email tuy nhiên cũng có một số điểm khác biệt: XMPP giống Email trong khả năng kết nối liên tên miền, còn World Wide Web thì không hỗ trợ. Trong khi Email hỗ trợ “multiple hop” nghĩa là khả năng kết nối giữa nhiều server với nhau, thì XMPP chỉ hỗ trợ kết nối “single hop” là chỉ kết nối giữa 2 server với nhau, còn World Wide Web thì không hỗ trợ chức năng này. 2.1.3. Địa chỉ (Address) Mỗi thực thể XMPP trên mạng được xác định bởi một địa chỉ gọi là JabberID (JID). Cơ bản XMPP dựa trên hệ thông tên miền DNS để xây dựng cấu trúc của một địa chỉ thay vì sử dụng địa chỉ IP. JID khá giống với một địa chỉ email có dạng user@domain.tld.  Domain Là giá trị full qualified domain name (FQDN) của server nơi cài đặt một dịch vụ XMPP, ví dụ test.xmpp  Users Khi một tài khoản được tạo tại một dịch vụ XMPP, hệ thống sẽ tự động gán giá trị tài khoản được tạo vào một JabberID có dạng tương tự như một địa chỉ email (user01@test.xmpp), giá trị này thường được gọi là “bare JID” (user@domain.tld).  Resources XMPP có khả năng cung cấp cho một tài khoản có thể đăng nhập nhiều lần vào hệ thống tại cũng một thời điểm, tuy nhiên mỗi lần đăng nhập tài khoản phải xác định một giá trị gọi là tài nguyên (resource) khác nhau. Khi đó giá trị SVTH: Trần Trung Thành 8 Khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang tài nguyên này sẽ được thêm vào cuối giá trị JID của tài khoản đó ví dụ user01@test.xmpp/home. Giá trị tài nguyên này có thể là tên địa điểm, tên máy, tên phần mềm mà tài khoản dùng để đăng nhập. Giá trị có dạng user@domain.tld/resource thường được gọi là “full JID”. 2.1.4. Streaming XML Về bản chất, XMPP là một công nghệ cho phép xử lý các luồng XML. Trước tiên một XMPP client phải thiết lập một kết nối TCP đến XMPP server. Sau đó client sẽ thiết lập một luồng XML đến server, và server cũng thiết lập một luồng tương tự theo chiều ngược lại. Khi qua trình thiết lập luồng kết thúc, giữa client và server sẽ trao đổi các thẻ XML cơ bản có 3 loại: , , , được gọi là “stanzas”. Dưới đây là một ví dụ đơn giản. C: C: C: S: C: Hello! S: Hi. SVTH: Trần Trung Thành 9 Khóa luận tốt nghiệp GVHD: Thầy Huỳnh Minh Quang C: C: Ghi chú: © C: stanzas từ client. © S: stanzas từ server. 2.1.5. Communication Promitives Về cơ bản các stanza trong XMPP là một đơn vị truyền thông tin, tương tự như một gói tin hay bản tin ở các giao thức khác, mỗi stanza đều có một ý nghĩa và tác dụng riêng, sẽ được trình bày sau đây.  Stanza Message Stanza message có chức năng truyền thông tin từ thực thể này đến thực thể khác trên mạng. Thông thường, các stanza message khi được gửi đi sẽ không nhận được thông tin xác nhận là đã gửi, điều này giúp giảm bớt thời gian xử lý đồng thời cũng giảm bớt một lượng băng thông đáng kể trên mạng dành cho việc xác nhận. Stanza message được phân thành 5 loại, tùy vào giá trị của thuộc tính type: © normal: tương tự như một email vì nó có thể được trả lời hoặc không. © chat: thể hiện việc trao đổi tin nhắn theo phiên trong thời gian thực giữa 2 thực thể. © groupchat: trao đổi tin nhắn giữa một nhóm thực thể. © headline: dùng để gửi một thông báo. © error: nếu có lỗi trong quá trình gửi tin nhắn trước thì một bản tin error sẽ được gửi về. Ngoài các thuộc tính type trong một stanza message còn các thuộc tính như to, from dùng để xác định địa chỉ người gửi và nhận và có giá trị là một JabberID, hay body, subject thể hiện nội dung bản tin, hay tiêu đề bản tin. SVTH: Trần Trung Thành 10
- Xem thêm -