Я работаю над приложением для обмена сообщениями, используя Spring websockets (STOMP как суб-протокол) и Sockjs.
Я должен предоставить поддержку для отправки файлов в сообщениях.
Согласно этот билет, sockjs не поддерживает двоичные данные, но STOMP делает.
Я знаю, что мы можем конвертировать изображение в base64 и отправлять его поверх stomp, но я думаю, что это не лучшая практика, так как есть много конверсий и накладных расходов. Также мне нужно сохранить сообщения, поэтому для сохранения этих файлов с кодировкой base64 на сервере снова мне придется их декодировать.
У меня есть несколько вопросов:
1) Есть ли способ обхода изображений/файлов поверх sockjs + stomp или конвертация в Base64 - единственный способ?
2) Может быть, это очень глупый вопрос, но согласно этому вопросу можно отправлять двоичные данные по STOMP (без sockjs). Насколько сложно поддерживать резерв без sockjs?
Спасибо.
РЕДАКТИРОВАТЬ: Если использовать base64 - единственный вариант, я скорее сделаю запрос POST для сохранения сообщений, в которых есть вложения, вместо использования кодировки base64. Любые идеи, которые лучше?