rabbitmq / rabbitmq-web-stomp

Provides support for STOMP over WebSockets
Other
89 stars 26 forks source link

webstomp error with 3.7.8 upgrade #93

Closed Textras closed 5 years ago

Textras commented 5 years ago

Getting a 426 HTTP error on http://our_server_address:15674/ws after upgrading to RabbitMQ 3.7.8.

This worked on previous version (3.6.x) on the same server. Webstomp used to work fine, it only doesn't work, since the upgrade. We are using the official Bitnami HA docker image. The stomp and webstomp plugins show as enabled in CLI.

If we bypass Nginx, same issue.

Very perplexed on day 2. Any helpful suggestions? Also tried various other ports.

michaelklishin commented 5 years ago

Thank you for your time.

Team RabbitMQ uses GitHub issues for specific actionable items engineers can work on. GitHub issues are not used for questions, investigations, root cause analysis, discussions of potential issues, etc (as defined by this team).

We get at least a dozen of questions through various venues every single day, often light on details. At that rate GitHub issues can very quickly turn into a something impossible to navigate and make sense of even for our team. Because GitHub is a tool our team uses heavily nearly every day, the signal/noise ratio of issues is something we care about a lot.

Please post this to rabbitmq-users.

Thank you.

michaelklishin commented 5 years ago

We cannot suggest anything without server logs, HTTP response information and a code snippet that demonstrates how connection is made.

426 suggests that the client did not perform WebSocket connection upgrade as expected. RabbitMQ 3.7.x uses a newer version of Cowboy, an embedded HTTP server, which can be more strict than previous versions.

This plugin has a set of examples that can be tried on a running node.

michaelklishin commented 5 years ago

From Cowboy 2 release notes:

«A 426 response will now be sent when a handler requires the client to upgrade to Websocket and the request did not include the required headers…»

Without knowing what the client is and what it does we cannot suggest what headers may be missing (and why).