Hello

I'm currently working on adding support for non-unicode emojis to Converse.js.

Currently, users can't upload their own images to be used for custom emojis,
mostly because Converse is a thin client with no backend support for it.

So to add custom emojis, the web host needs to edit a emojis.json file
to add new entries with URLs pointing to the actual images.

Concerning compatibility with other clients, I've discussed it with edhelas
and he told me he uses XEP-0231 BOB for sending stickers.

There are a few reasons why I'm not keen on using BOB:

- BOB depends on XHTML-IM which is deprecated. Converse.js doesn't support it
  and I'm reluctant to add support just for this.
- BOB mentions that binary data should be smaller than 1KB. Not sure how
  relevant that still is, but it discourages me from sending larger amounts.
- The sending client needs to maintain a cache of all sent stickers.
- AFAICT, when receiving an uncached BOB message via MAM and the sending client
  is offline, then you can't get the image data.

Instead, I propose that we use XEP-0372 references to indicate that a
particular shortname (e.g. :dancingpanda:) should be replaced with an image.

For example:

    <message type="chat" from="t...@chat.org" to="m...@chat.org"
        <body>I feel like dancing! :dancingpanda:</body>
        <reference xmlnx="urn:xmpp:reference:0"
                begin="21"
                end="35"
                type="data"
                uri="https://images.com/dancingpanda"/>
    </message>

I'm not sure whether "type" should be "data", seems a bit too generic for me,
perhaps it could be something else?

Some criticisms of this approach from edhelas:

- HTTP images can be sent to a webchat client served over HTTPS
- There's no size limit, so users can send links to very large stickers

Concerning the first criticism, a client can choose to not render HTTP
images inline and instead make the shortname a link which opens the image in a
new tab. Not ideal, but a compromise for the privacy and security conscious.

For the second I don't have a good answer.

That said, I currently still prefer my suggestion to using BOB. I'd be
interested to hear your feedback and suggestions.

Regards
JC

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
_______________________________________________

Reply via email to