[undertow-dev] Creating a websocket proxy with undertow
Marc Boorshtein
marc.boorshtein at tremolosecurity.com
Fri Nov 30 14:41:14 EST 2018
Thanks Stuart. I need to avoid annotations since this will be configured
dynamically. I was wrong about the version, right now i'm on 2.0.9.Final.
I'm trying to create a websocket proxy. I was able to get the
ReceiveListener registered in Undertow and create a WebSocketClient. I'm
trying to pipe the data from the client through Undertow to the server,
starting with a Text message:
@Override
protected void onText(WebSocketChannel webSocketChannel,
StreamSourceFrameChannel messageChannel)
throws IOException {
PooledByteBuffer b = pool.allocate();
ByteBuffer buffer = b.getBuffer();
while (messageChannel.read(buffer) > 0) {
WebSockets.sendText(buffer, wsClient, null);
}
b.close();
}
The message sent to the downstream websocket server isn't right though (and
the server rejects it). The frame from wireshark just shows a buffer of
"\000\000...". I think I'm close but I don't see an example of how to do
this. Any suggestions or pointers would be greatly appreciated.
Thanks
Marc Boorshtein
On Thu, Nov 29, 2018 at 5:07 PM Stuart Douglas <sdouglas at redhat.com> wrote:
> The easiest way would probably be to use the JSR-356 API. You basically
> just make an @ServerEndpoint that connects to the remote endpoint, and then
> passes messages back and forth. The JSRWebSocketServer gives and example of
> how to setup the server endpoint.
>
> Stuart
>
> On Fri, Nov 30, 2018 at 8:34 AM Marc Boorshtein <
> marc.boorshtein at tremolosecurity.com> wrote:
>
>> Using the 1.4 series, I'm trying to handle upgrade and websockets.
>> Looking at a few examples and the code I think what I need to do is:
>>
>> 1. add the WebSocketServlet to the right path
>> 2. implement WebSocketConnectionCallback that will call my remote ws://
>> server
>>
>> Am I on the right track? I haven't found an example of doing this with
>> undertow but found something similar with jetty (
>> https://github.com/chipster/chipster-web-server/blob/master/src/main/java/fi/csc/chipster/proxy/WebSocketProxyServlet.java)
>> but I havne't found the same thing for undertow so any pointers would be
>> appreciated.
>>
>> Thanks
>>
>>
>> Marc Boorshtein
>>
>>
>> _______________________________________________
>> undertow-dev mailing list
>> undertow-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/undertow-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/undertow-dev/attachments/20181130/b99368e2/attachment.html
More information about the undertow-dev
mailing list