【问题标题】:Use proxy for Stomp over WebSocket protocol通过 WebSocket 协议使用 Stomp 代理
【发布时间】:2020-10-27 18:34:41
【问题描述】:

我在 Java 中使用 Stomp over WebSocket 协议处理通知消费。 我的问题是通过代理(具有定义的名称和端口)。 我在网上查了很多,但找不到很多...

这段代码运行良好,我设法消耗队列并接收消息。不过,我在服务器上部署时,并没有解决地址,需要通过专用代理强制传递。

public StompSession connect(StompSessionHandler stompSessionHandler) throws ExecutionException, InterruptedException {
    WebSocketStompClient stompClient = initStompClient();
    StompHeaders connectHeaders = configureHeaders();
    return stompClient.connect(configuration.getUrlBroker(), (WebSocketHttpHeaders) null, connectHeaders, stompSessionHandler).get();
}

private WebSocketStompClient initStompClient() {
    WebSocketContainer container = ContainerProvider.getWebSocketContainer();
    container.setDefaultMaxTextMessageBufferSize(configuration.getMaxTextMessageSize());
    WebSocketClient webSocketClient = new StandardWebSocketClient(container);

    WebSocketStompClient webSocketStompClient = new WebSocketStompClient(webSocketClient);
    webSocketStompClient.setMessageConverter(new MappingJackson2MessageConverter());
    webSocketStompClient.setTaskScheduler(new ConcurrentTaskScheduler());
    webSocketStompClient.setInboundMessageSizeLimit(configuration.getMaxTextMessageSize());
    return webSocketStompClient;
}

private StompHeaders configureHeaders() {
    StompHeaders headers = new StompHeaders();
    headers.setLogin(configuration.getLogin());
    headers.setPasscode(configuration.getPassword());
    headers.setHeartbeat(new long[]{configuration.getHeartbeatOut(), configuration.getHeartbeatIn()});
    headers.setAcceptVersion(configuration.getAcceptVersion());
    return headers;
}

你有线索吗?

提前谢谢你。

【问题讨论】:

    标签: java websocket proxy stomp


    【解决方案1】:

    Le proxy peut se définir dans les propriétés système de la JVM:

    System.setProperty("http.proxyHost", proxyConfiguration.getHost());
    System.setProperty("http.proxyPort", valueOf(proxyConfiguration.getPort()));
    System.setProperty("https.proxyHost", proxyConfiguration.getHost());
    System.setProperty("https.proxyPort", valueOf(proxyConfiguration.getPort()));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-27
      • 2017-04-20
      • 2019-11-09
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      相关资源
      最近更新 更多