Jabber 用户头像 vCard-base avatar JEP-0153
Jabber 用户头像保存另外一种方法 vCard-base avatar JEP-0153
psi使用的这种方法,不过要0.11以后的版本。
缺点:和vCard信息绑定在一起,每次更新一大堆内容,presence广播里面每次也需要增加额外的冗余信息。 优点:服务器实现简单,无需另外编程。 使用流程: 保存头像方法:在 vCard 中增加一个 PHOTO 标签 <iq from='timyang@jabber.org' type='set' id='vc1'> <vCard xmlns='vcard-temp'> <BDAY>1476-06-09</BDAY> <ADR> <CTRY>Italy</CTRY> <LOCALITY>Verona</LOCALITY> <HOME/> </ADR> <NICKNAME/> <N><GIVEN>Tim</GIVEN><FAMILY>Yang</FAMILY></N> <EMAIL>jcapulet@shakespeare.lit</EMAIL> <PHOTO> <TYPE>image/jpeg</TYPE> <BINVAL> Base64-encoded-avatar-file-here! </BINVAL> </PHOTO> </vCard> </iq> 用户广播 <presence> 时候加上 avatar 的信息 <presence from='timyang@jabber.org/balcony'> <x xmlns='vcard-temp:x:update'> <photo>sha1-hash-of-image</photo> </x> </presence> 好友获取一个用户 avatar 信息的方法,查询vCard: <iq from='romeo@montague.net/orchard' to='timyang@jabber.org' type='get' id='vc2'> <vCard xmlns='vcard-temp'/> </iq> Server Returns vCard on Behalf of User <iq from='timyang@jabber.org' to='romeo@montague.net/orchard' type='result' id='vc2'> <vCard xmlns='vcard-temp'> <BDAY>1476-06-09</BDAY> <ADR> <CTRY>Italy</CTRY> <LOCALITY>Verona</LOCALITY> <HOME/> </ADR> <NICKNAME/> <N><GIVEN>Juliet</GIVEN><FAMILY>Capulet</FAMILY></N> <EMAIL>jcapulet@shakespeare.lit</EMAIL> <PHOTO> <TYPE>image/jpeg</TYPE> <BINVAL> Base64-encoded-avatar-file-here! </BINVAL> </PHOTO> </vCard> </iq> |