开发者

How can I send an image on the web in an XMPP (Jabber) message?

For the XMPP interface for the Stack Overflow chat, I am currently taking the HTML of the chat messages and converting to valid XML, and setting that as the html child element of the XMPP message object. In my Mac OS X jabber client this was working great! It meant that when users in the SO chat posted a oneboxed image, the image would show up in my XMPP client (Adium for OS X):

How can I send an image on the web in an XMPP (Jabber) message?

However I just updated Adium to the latest version and apparently they considered what I was doing to be a security hole and against XMPP specs, and changed that behavior. Their reasoning was that XMPP should开发者_JS百科 not reveal your Ip address, and to fetch an image over HTTP would reveal my IP address.

So now the chats are imageless over XMPP. How can I make images work over XMPP? Should my XMPP component download the images and embed them into the <Message> stanzas? Can the images be proxied through the XMPP server? Or is this an impossibility?


Adium, iChat and Pidgin all support XEP-0231, which allows you to send the provide binary data, including images to this purpose. Basically, it allows you to specify a unique identifier as the source for an image, and then the other client can decide if he wants to request the data in a <iq> request.

I've been working with this in python's Twisted, but meeting with some frustration. I do know that Adium and iChat at least use it to request the data.


Try embedding it in a data: uri, like <img src="data:image/png;base64,VGhlIGltYWdlIGRhdGEgZ29lcyBoZXJlCg==" alt="some text" />


Just an idea...

What about parsing the image URL's, downloading the images, putting them into a temp folder with filenames representative of the original URLs (the filename could be a hash of the original URL) and substituting the original URLs in the messages for these file URLs?

Another idea... having a local server that fetches the real URLs?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜