Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 107 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
107
Dung lượng
1,16 MB
Nội dung
TRNG I HC M TP. H CHÍ MINH KHOA CÔNG NGH THÔNG TIN KHÓA LUN TT NGHIP NGÀNH TIN HC XÂY DNG NG DNG INSTANT MESSAGE THEO GIAO THC XMPP SVTH: Trn Trung Thành MSSV: 10761278 Ngành: Tin Hc GVHD: Thy Hunh Minh Quang Thành ph H Chí Minh – Nm 2011 Báo cáo khóa lun tt nghip GVHD: Thy Hunh Minh Quang SVTH: Trn Trung Thành i LI CM N Trong sut quá trình hc ti trng i hc M Tp H Chí Minh, em đã đc các thy cô hng dn và truyn đt nhng kin thc chuyên môn cn thit. Ngoài ra, em còn đc làm vic nghiêm túc, tích cc trên tinh thn đc lp sáng to. ây là nhng kinh nghim quý báu trc khi bt tay vào làm vic trong tng lai. Quá trình thc hin khóa lun tt nghip va qua là c hi đ em có th áp dng nhng kin th c mà trong sut 4 nm qua em đã đc hc tp, cùng vi hng dn tn tình ca thy Hunh Minh Quang em đã hoàn thành đ tài ca mình. Em xin chân thành cm n thy Hunh Minh Quang đã tn tình giúp đ, hng dn em trong sut thi gian thc hin khóa lun, chúc thy sc khe và đt đc nhiu thành công trong s nghip ging dy và nghiên cu khoa hc. Sinh Viên Trn Trung Thành Báo cáo khóa lun tt nghip GVHD: Thy Hunh Minh Quang SVTH: Trn Trung Thành ii NHN XÉT CA GING VIÊN HNG DN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… Báo cáo khóa lun tt nghip GVHD: Thy Hunh Minh Quang SVTH: Trn Trung Thành iii NHN XÉT CA GIÁO VIÊN PHN BIN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… Báo cáo khóa lun tt nghip GVHD: Thy Hunh Minh Quang SVTH: Trn Trung Thành iv DANH MC CÁC T VIT TT T vit tt T nguyên gc 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 Báo cáo khóa lun tt nghip GVHD: Thy Hunh Minh Quang SVTH: Trn Trung Thành v MC LC CHNG 1: TNG QUAN 1 1.1. Tng quan v đ tài 2 1.2. Các vn đ đã thc hin trong đ tài 2 1.3. B cc ca khóa lun 3 CHNG 2: C S LÝ THUYT XMPP 4 2.1. Messaging and Presence Protocol (XMPP) 5 2.1.1. Gii thiu 5 2.1.2. Kin trúc 7 2.1.3. a ch (Address) 8 2.1.4. Streaming XML 9 2.1.5. Communication Promitives 10 2.2. Kt ni và bo mt 14 2.2.1. To kt ni gia client – server 14 2.2.2. Các phng thc chng thc 17 2.2.3. Mã hóa kt ni 18 2.3. S hin din (Presence) 19 2.3.1. ng ký s hin din 19 2.3.2. Thông báo s hin din 21 2.3.3. Thông tin trng thái 22 2.3.4. u tiên 23 2.3.5. Thông báo s hin din trc tip 23 2.3.6. Offline 24 2.3.7. Qun lí danh sách (roster) 24 2.4. Instant Messaging 25 2.4.1. Trng thái trò chuyn (Chat States) 26 2.4.2. VCard 27 2.4.3. nh dng tin nhn 28 2.5. Khám phá dch v (Service Discovery) 28 2.6. Data Forms 30 Báo cáo khóa lun tt nghip GVHD: Thy Hunh Minh Quang SVTH: Trn Trung Thành vi 2.7. Chat nhóm (Multi-User Chat) 32 2.7.1. C bn v Multi-User Chat 32 2.7.2. Phân quyn trong phòng 35 2.7.3. Nick name 40 2.7.4. To phòng chat 42 2.7.5. Mi bn vào phòng chat 43 2.8. Jingle và File Transfer 44 2.8.2. To phiên đ thc hin mt cuc gi 46 2.8.3. To phiên gi file 50 2.8.4. In-Band Bytestreams 55 CHNG 3: PHÂN TÍCH VÀ THIT K NG DNG 57 3.1. Gii thiu 58 3.2. S đ Use Case 58 3.3. Thit k các lp 71 3.3.1. C s d liu 71 3.3.2. Các lp phía Server 72 3.3.3. Các lp phía Client 82 CHNG 4: HIN THC NG DNG 88 4.1. Các chc nng đã hin thc đc 89 4.2. Mt s giao din ng dng 89 4.3. Cài đt và s dng 92 4.3.1. Yêu cu h thng 92 4.3.2. Cài đt 92 4.3.3. S dng 93 CHNG 5: KT LUN 95 5.1. Mt s kt qu đt đc 96 5.2. Hn ch 96 5.3. Hng phát trin 96 TÀI LIU THAM KHO 97 Báo cáo khóa lun tt nghip GVHD: Thy Hunh Minh Quang SVTH: Trn Trung Thành vii DANH MC HÌNH Hình 2.1: Kin trúc phân cp client – server XMPP 7 Hình 2.2: Cu trúc tng tác ca stanza IQ 12 Hình 2.3: Quá trình bt tay đng ký s hin din 20 Hình 2.4: Các trng thái trò chuyn trong XMPP 26 Hình 2.5: Quy trình tng tác d liu Data Form 31 Hình 2.6: Quá hot đng ca mt phiên Jingle 45 Hình 3.1: Mô hình tng quát ng dng 58 Hình 3.2: Mô hình thao tác sau đng nhp 59 Hình 3.3: Lu đ kt ni 59 Hình 3.4: Lu đ đng ký 60 Hình 3.5: Lu đ ngt kt ni 61 Hình 3.6: Lu đ đng nhp 62 Hình 3.7: Lu đ đng xut 63 Hình 3.8: Lu đ thêm bn 64 Hình 3.9: Lu đ xóa bn 65 Hình 3.10: Lu đ gi tin nhn 66 Hình 3.11: Lu đ to phòng chat 67 Hình 3.12: Lu đ mi bn vào phòng chat 68 Hình 3.13: Lu đ gi tin nhn lên phòng chat 69 Hình 3.14: Lu đ gi file 70 Hình 3.15: Bng Account 71 Hình 3.16: Bng ContactList 71 Hình 3.17: Mô hình c s d liu 72 Hình 3.18: S đ các lp phía Server 72 Hình 3.19: Lp Parser 73 Hình 3.20: Lp JID 74 Báo cáo khóa lun tt nghip GVHD: Thy Hunh Minh Quang SVTH: Trn Trung Thành viii Hình 3.21: Lp CADO 74 Hình 3.22: Lp Tag 75 Hình 3.23: Lp ClientGroup 76 Hình 3.24: Lp Roster 76 Hình 3.25: Lp CServerApp 76 Hình 3.26: Lp Base64 77 Hình 3.27: Lp Util 77 Hình 3.28: Lp ConnectionClient 77 Hình 3.29: Lp ConnectionServer 78 Hình 3.30: Lp ConnectionBase. 78 Hình 3.31: Giao din TagHandler 79 Hình 3.32: Giao din ConnectionDataHandler 79 Hình 3.33: Lp ClientHandler 80 Hình 3.34: Giao din ConnectionHandler 80 Hình 3.35: Giao din ServerHandler 81 Hình 3.36: Lp CServerDlg 82 Hình 3.37: S đ các lp phía Client 83 Hình 3.38: Giao din NotifyHandler 83 Hình 3.39: Lp ClientProcess 84 Hình 3.40: Lp CChatDlg 85 Hình 3.41: Lp CLoginDlg 85 Hình 3.42: Lp CRegisterDlg 86 Hình 3.43: Lp CClientApp 86 Hình 3.44: Lp CAddContactDlg 86 Hình 4.1: Giao din Server 89 Hình 4.2: Giao din chính Client 90 Hình 4.3: Ca s đng ký tài khon 90 Báo cáo khóa lun tt nghip GVHD: Thy Hunh Minh Quang SVTH: Trn Trung Thành ix Hình 4.4: Ca s đng nhp 91 Hình 4.5: Ca s thêm bn 91 Hình 4.6: Ca s khi có yêu cu thêm bn 91 Hình 4.7: Ca s chat 92 [...]... jid=“user01@test .xmpp /> C: Hello! < /message> S: Hi. SVTH: Tr n Trung Thành 9 Khóa lu n t t nghi p GVHD: Th y Hu nh Minh Quang < /message> C: C: Ghi chú:... 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 rãi, b t c cá nhân nào c s d ng khá r ng 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... hi n trong SVTH: Tr n Trung Thành tài 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... 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, giao th c th c i m chung c a nh ng giao th c này u là nh ng 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 Instant Messaging, khi ó ng... (2009), XMPP The Definitive Guide, Trang 22 Ví d : ... test .xmpp /> º X lý l i (Error Handling) Ngoài tr stanza IQ thì các b n tin khác trong XMPP khi không nh n c b t k m t thông tin xác nh n nào, thông th có b n tin báo l i thì có ngh a là ã g i thành công XMPP cung c p thành ph n presence xác cg i is ng, khi không t o ra m t b n tin l i c thêm vào stanza message hay nh chính xác l i x y ra XMPP. .. server 2.1.5 Communication Promitives V c b n các stanza trong XMPP là m t nh m t gói tin hay b n tin n v truy n thông tin, t các giao th c khác, m i stanza ngh a và tác d ng riêng, s ng t u có m t ý 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 khác trên m ng Thông th nh n ng, các stanza message khi n th c th c g i i s không c thông tin xác nh n là ã... 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 SVTH: Tr n Trung Thành b n tin 10 Khóa lu n t t nghi p GVHD: Th y Hu nh Minh Quang Ví d : Hi. < /message> º Stanza Presence Nh n bi t s... Là giá tr full qualified domain name (FQDN) c a server n i cài tm t d ch v XMPP, ví d test .xmpp º Users Khi m t tài kho n giá tr tài kho n c t o t i m t d ch v XMPP, h th ng s t c t o vào m t JabberID có d ng t email (user01@test .xmpp) , giá tr này th ng ng t nh m t ng gán a ch 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... lý thuy t XMPP ô Ch ng 3 Phân tích và thi t k ô Ch ng 4 Hi n th c ng d ng ô Ch ng 5 K t lu n SVTH: Tr n Trung Thành ng d ng 3 Khóa lu n t t nghi p CH GVHD: Th y Hu nh Minh Quang NG 2: C SVTH: Tr n Trung Thành S LÝ THUY T XMPP 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 . KHOA CÔNG NGH THÔNG TIN KHÓA LUN TT NGHIP NGÀNH TIN HC XÂY DNG NG DNG INSTANT MESSAGE THEO GIAO THC XMPP SVTH: Trn Trung Thành MSSV: 10761278 Ngành: Tin Hc GVHD:. các giao thc Instant Messaging khác, XMPP là mt giao thc m, chính vì điu này đã làm cho XMPP đc s dng khá rng rãi, bt c cá nhân nào đu có th tin hành trin khai mt dch v XMPP. jid=“user01@test .xmpp /> <item jid=“user02@ test .xmpp /> <item jid=“user03@ test .xmpp /> <query/> C: < ;message from=“user04@ test .xmpp to=“user01@ test .xmpp > <body>Hello!</body>