繁体   English   中英

无法使用 SimpMessagingTemplate 发送二进制数据 (byte[])

[英]Unable to Send Binary Data (byte[]) using SimpMessagingTemplate

我可以使用 SimpMessagingTemplate.convertAndSend() 方法向 websocket 发送字符串消息,但是当我尝试发送 byte[] 时同样不起作用。 当我将 byte[] 发送到 websocket 订阅通道时,websocket DISCONNECT 事件被触发并且连接丢失。 使用 SimpMessagingTemplate 将 byte[] 发送到 websocket 的任何想法!!!!!!

@Autowired
private SimpMessagingTemplate template;

String body = "Message to be Sent";

template.convertAndSend("/channel", body);   --------- working

template.convertAndSend("/channel", body.getBytes());   --------- Not working

您是否尝试将自定义消息转换器添加到字节数组中 只需覆盖configureMessageConverters方法。

@Configuration
public class WebSocketSecurityConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer {

    @Override
    protected void configureInbound(MessageSecurityMetadataSourceRegistry messages) {
        messages.simpTypeMatchers(
                SimpMessageType.DISCONNECT, SimpMessageType.OTHER).permitAll();
        messages.anyMessage().authenticated();
    }

    @Override
    public boolean configureMessageConverters(List<MessageConverter> messageConverters) {
        messageConverters.add(new ByteArrayMessageConverter());
        return false;
    }

    @Override
    protected boolean sameOriginDisabled() {
        return true;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM