Hi Claus,

The problem was caused by the two websocket producer endpoints having a
different parameter set. When I keep the websocket producer endpoints the
same and use the header WebsocketConstants.SEND_TO_ALL for broadcasting
then everything works OK. As soon as I use the sendToAll parameter in one
of the producer URI's then the endpoints are different and only the first
route will work.
I created https://issues.apache.org/jira/browse/CAMEL-9348 with a pull
request.

Regards,

Ton

2015-11-21 9:45 GMT+01:00 Claus Ibsen <claus.ib...@gmail.com>:

> Could you try having an echo2 channel or something so you don't use
> the same as you received from, to see if that works?
>
> On Fri, Nov 20, 2015 at 2:50 PM, Ton Swieb <t...@finalist.nl> wrote:
> > Hi,
> >
> > I am trying to setup a websocket using Camel 2.16.0 that echo's back
> > everything it receives.
> > I had a look at http://camel.apache.org/websocket.html and something
> like:
> > from("websocket://echo")
> >     .log(">>> Message received from WebSocket Client : ${body}")
> >     .transform().simple("${body}${body}")
> >     // send back to the client, by sending the message to the same
> endpoint
> >     // this is needed as by default messages is InOnly
> >     // and we will by default send back to the current client using the
> > provided connection key
> >     .to("websocket://echo");
> >
> > should do the trick.
> >
> > So I setup something similar but it does not give back any response to
> the
> > websocket client.
> > I only get a response when I use the sendToAll flag.
> >
> >
> > Should I configure something additionally?
> >
> > My example project is at:
> > https://github.com/tonswieb/camel-websocket-example/
> > Which can be run using camel:run after which you can pen a session from
> > your browser by goging to http://localhost:9292/
> >
> > When I send something from the browser I see in the logging that it is
> send
> > back by the websocketproducer, but nothing shows at client side.
> > Periodically broadcasting messages from Camel to the client works as
> > expected. So when the sendToAll flag is used.
> >
> > The following is shown in the logging:
> > DEBUG | DefaultWebsocket                 | onMessage
> > | onMessage: Test
> > INFO  | route2                           | info
> > | Received: Test from acf89a8a-e89a-4fee-8fb4-d6a3341df59b
> > DEBUG | SendProcessor                    | process
> > | >>>>
> Endpoint[websocket://camel-tweet?staticResources=classpath%3Awebapp]
> > Exchange[ID-MacBook-Pro-van-Ton-local-56803-1448027164258-0-6][Message:
> > Test from acf89a8a-e89a-4fee-8fb4-d6a3341df59b]
> > DEBUG | WebsocketProducer                | process
> > | Sending to connection key acf89a8a-e89a-4fee-8fb4-d6a3341df59b -> Test
> > from acf89a8a-e89a-4fee-8fb4-d6a3341df59b
> >
> > Kind regards,
> >
> > Ton
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Reply via email to