Don't worry about creating a Jira. I created one already [1]. I'll be
sending a PR shortly so this should be resolved in 2.40.0.


Justin

[1] https://issues.apache.org/jira/browse/ARTEMIS-5249

On Fri, Jan 17, 2025 at 9:29 AM Justin Bertram <jbert...@apache.org> wrote:

> What specific WebSocket protocol documentation are you looking at?
>
> Netty's io.netty.handler.codec.http.websocketx.WebSocketProtocolHandler
> [1] clearly handles pong frames. Also, the spec [2] says this:
>
>     A Pong frame MAY be sent unsolicited.  This serves as a
>     unidirectional heartbeat.  A response to an unsolicited Pong frame is
>     not expected.
>
> Can you open a Jira [3] for this? Please include the exception in the
> description of the Jira to help other folks who are searching find it.
> Thanks!
>
> It's also worth noting that using amqpIdleTimeout=0 is a bit dangerous as
> any connection that fails without being explicitly closed will not be
> cleaned up on the broker. This risks an accumulation of "zombie"
> connections on the broker which may starve legitimate connections of
> resources and ultimately cause the broker to fail.
>
>
> Justin
>
> [1]
> https://github.com/netty/netty/blob/4.1/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketProtocolHandler.java
> [2] https://www.rfc-editor.org/rfc/rfc6455#section-5.5.3
> [3] https://issues.apache.org/jira/browse/ARTEMIS
>
> On Fri, Jan 17, 2025 at 2:00 AM <optimuser...@gmail.com> wrote:
>
>> Hello everyone,
>>
>>
>>
>> We are using ActiveMQ Artemis Server version 2.33.0 on a Windows platform
>> and run it as a service.
>> We use AMQP over WebSocket protocol and have configured the websocket
>> acceptor to have amqpIdleTimeout=0.
>> In our setup we use IIS as a reverse proxy between the clients and the
>> broker. The clients will no longer send keep-alive requests because of the
>> amqpIdleTimeout configuration.
>>
>>
>>
>> However IIS does send Pong frames to the broker after the client is idle
>> for 30s.
>> Looking at the implementation of
>> WebSocketServerHandler.handleWebSocketFrame, it seems that the Pong frame
>> is not supported and an exception is thrown. The exception appears in the
>> logs.
>>
>>
>>
>> Looking at the WebSocket protocol documentation, it seems that a Pong
>> request should be supported.
>>
>>
>>
>> Our issue is that Artemis closes the connection immediately after
>> receiving the Pong. Is this intended with regard to the protocol?
>
>

Reply via email to