我正在使用Spring Websockets(STOMP作为子协议)和Sockjs开发一款消息应用程序。
我需要支持在消息中发送文件。
根据这个问题,sockjs不支持二进制数据,但STOMP支持。
我知道我们可以将图像转换为base64并通过stomp发送,但我认为这不是最佳实践,因为需要进行大量的转换和开销。此外,我必须保存这些消息,因此要再次将这些base64编码文件保存到服务器,我还需要对它们进行解码。
我有几个问题:
1)有没有一种绕过sockjs + stomp发送图像/文件的方法,或者转换为Base64是唯一的方法?
2)也许这是一个非常愚蠢的问题,但根据这个问题,可以通过STOMP(不使用sockjs)发送二进制数据。支持无sockjs的回退有多难?
谢谢。
编辑:如果只能使用base64,则我宁愿发起POST请求以保存具有附件的消息,而不是使用base64编码。有什么更好的想法吗?