Comments (5)
The same issue occurs in Mironaut version 4.3.6 so it looks like it is not purely related to 4.4.0 version
⚠️ Are we doing something wrong or do we miss some configuration for WSS?
@iNviNho I don't think (yet) that you're doing anything wrong. I have been investigating and was able to reproduce it in multiple Micronaut 4.x versions as well. It seems to be specific to the SSL implementation. I will update as I learn more.
from micronaut-core.
@iNviNho I have tracked it down to an issue with our ALPN implementation. We do not currently support WebSockets over an HTTP 2 connection (as far as I know, Netty does not yet have an official implementation of RFC8441), but we are advertising support for HTTP 2 in the TLS handshake when making the initial connection to the endpoint. I believe that is what is causing the server to drop the connection.
You can work around it for now by setting micronaut.http.client.alpn-modes=http/1.1
.
I will need to implement a fix to force the WebSocket client to only advertise HTTP 1.1 in the TLS handshake.
from micronaut-core.
Thank you @jeremyg484 .
Setting
micronaut:
http:
client:
alpn-modes: http/1.1
didn't work but setting alpnMode on the @client already makes a difference
@Client(value = "talos-ws", alpnModes = "http/1.1")
after that we got the error
invalid WebSocket Extension handshake for "permessage-deflate; server_no_context_takeover; client_no_context_takeover"
which we fixed by enabling compression
compression:
enabled: false
and now everything works as expected 🍾
Thank you so far for your assistance!
from micronaut-core.
Note that alpn-modes
is an array, so I believe in YAML it would need to be:
micronaut:
http:
client:
alpn-modes: [http/1.1]
from micronaut-core.
The same issue occurs in Mironaut version 4.3.6 so it looks like it is not purely related to 4.4.0 version
Are we doing something wrong or do we miss some configuration for WSS?
from micronaut-core.
Related Issues (20)
- Consider breaking the IoC and AOP docs out into a separate guide
- Docs: not entirely clear what happens if you inject a bean with an unsatisfied requirement HOT 2
- @ExecuteOn(TaskExecutors.IO) does not work with @ServerWebSocket
- h2c prior knowledge client support
- CI Information May Be Out Of Date
- Unable to compile project - NoClassDefFoundError AbstractInitializableBeanDefinitionAndReference HOT 2
- Issue after upgrading from 4.3.8 to 4.4.0 HOT 2
- Build native app on macOS without error at kotlin.coroutines.intrinsics.CoroutineSingletons HOT 2
- CookieFactory META-INF/services cause loading failures HOT 1
- Deserializing into Optionals not working with `@Introspected` HOT 1
- micronaut-platform 4.4.1 jackson dependencies are not matching
- Property Placeholder No Longer Resolves to Null for Nullable Arguments When Environment Variable Does Not Exist HOT 6
- deduceCloudEnvironment doesn't add "cloud" in AppEngine HOT 3
- Custom inject annotation using implements TypedAnnotationMapper not working HOT 1
- Optional list query parameter defaults to list with a single element
- ConversionErrorHandler not being used after upgrading to 4.4.2
- Can't use micronaut annotations processors with spring app HOT 1
- Make empty body configurable behaviour HOT 8
- No backing TransactionOperations configured during test execution HOT 1
- Nonsensical error due to typo in AbstractInitializableBeanIntrospection
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from micronaut-core.