You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Jeremy (JIRA)" <ji...@apache.org> on 2016/09/03 15:29:20 UTC

[jira] [Comment Edited] (CAMEL-10283) Add a timeout on WebSocketProducer sendMessages method

    [ https://issues.apache.org/jira/browse/CAMEL-10283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15460857#comment-15460857 ] 

Jeremy edited comment on CAMEL-10283 at 9/3/16 3:29 PM:
--------------------------------------------------------

Should be line 99 in WebSocketProducer.class

websocket.getConnection().sendMessage((String)message);

By looking at the jetty documentation, I couldn't find any request timeout, but it seems that we could use the async send method instead of the blocking one -> https://www.eclipse.org/jetty/documentation/9.4.x/jetty-websocket-api-send-message.html

I couldn't find the jetty implementation in the code, just seeing interfaces.

I will have a look at AHC-WS.

Thanks.

EDIT:

Unfortunately I've been unable to run ahc-ws with a simple route :

 from("ahc-ws://localhost:"+websocketPort)
                .routeId("websocket")....

Keep getting camel context shut down just after start:

2016-09-03 16:46:09 INFO  WsEndpoint:161 - Reconnecting websocket: ws://localhost:9292
2016-09-03 16:46:10 INFO  DefaultCamelContext:3066 - Apache Camel 2.17.2 (CamelContext: camel-1) is shutting down

DefaultCamelContext is catching exception line 2858:

java.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused: no further information





was (Author: sufod):
Should be line 99 in WebSocketProducer.class

websocket.getConnection().sendMessage((String)message);

By looking at the jetty documentation, I couldn't find any request timeout, but it seems that we could use the async send method instead of the blocking one -> https://www.eclipse.org/jetty/documentation/9.4.x/jetty-websocket-api-send-message.html

I couldn't find the jetty implementation in the code, just seeing interfaces.

I will have a look at AHC-WS.

Thanks.

> Add a timeout on WebSocketProducer sendMessages method
> ------------------------------------------------------
>
>                 Key: CAMEL-10283
>                 URL: https://issues.apache.org/jira/browse/CAMEL-10283
>             Project: Camel
>          Issue Type: Wish
>          Components: camel-websocket
>    Affects Versions: 2.17.2
>         Environment: Ubuntu 14.04, full java project using camel-websockets
>            Reporter: Jeremy
>            Priority: Critical
>
> We are encountering a problem with websocket component when our clients using web browsers are brutally loosing connection (closing laptop most of time).
> When we are sending updates from server to all clients, the WebSocketProducer iterate over all opened sockets and when it reaches the broken socket, it is just waiting for the idleTimeout to happen.
> At this step, the others clients are not able to interact with the server anymore cause the websocket producer is busy waiting on the broken socket and can't send messages to other clients.
> I'm looking for a work-around or something... maybe the ability to set a timeout on the client handshake when sending... I'm not an expert in network protocols.
> Thanks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)