对于XMPP interface for the Stack Overflow chat,我目前是taking the HTML of the chat messages and converting to valid XML,并将其设置为XMPP html
对象的message
子元素。在我的Mac OS X jabber客户端中,这工作得很好!这意味着当SO聊天中的用户发布了一个单盒化图像时,该图像将显示在我的XMPP客户端(Adium for OS X)中:
但是我刚刚将Adium更新为最新版本,显然是they considered what I was doing to be a security hole and against XMPP specs, and changed that behavior。他们的理由是XMPP不应该透露你的IP地址,而通过HTTP获取图像会显示我的IP地址。
所以现在聊天对XMPP来说是无形的。如何使图像在XMPP上运行?我的XMPP组件应该下载图像并将它们嵌入<Message>
节吗?可以通过XMPP服务器代理图像吗?或者这是不可能的?
答案 0 :(得分:6)
Adium,iChat和Pidgin都支持XEP-0231,它允许您发送提供的二进制数据,包括用于此目的的图像。基本上,它允许您指定唯一标识符作为图像的源,然后另一个客户端可以决定是否要在<iq>
请求中请求数据。
我一直在python的Twisted中使用它,但遇到了一些挫败感。我知道 Adium和iChat至少使用它来请求数据。
答案 1 :(得分:3)
尝试将其嵌入a data: uri,例如<img src="data:image/png;base64,VGhlIGltYWdlIGRhdGEgZ29lcyBoZXJlCg==" alt="some text" />
答案 2 :(得分:0)
只是一个想法......
如何解析图像URL,下载图像,将它们放入一个临时文件夹,文件名代表原始URL(文件名可能是原始URL的哈希值),并将消息中的原始URL替换为这些文件网址?
另一个想法是......拥有一个获取真实URL的本地服务器?