NarūnasK
NarūnasK

Reputation: 4950

RabbitMQ WebSocket 404 Not Found

I'm running rabbitmq-server v3.3.5-1.1 on the Debian v8.2. I have enabled rabbitmq_web_stomp and rabbitmq_web_stomp_examples as per suggestion in the docs:

rabbitmq-plugins enable rabbitmq_web_stomp
rabbitmq-plugins enable rabbitmq_web_stomp_examples

All examples exposed at http://127.0.0.1:15670 work as intended, but they all use SockJS rather than native browser's WebSocket:

// Stomp.js boilerplate
var ws = new SockJS('http://' + window.location.hostname + ':15674/stomp');
var client = Stomp.over(ws);

I would like to stick to the WebSocket so I tried what was suggested in the docs:

var ws = new WebSocket('ws://127.0.0.1:15674/ws');

This throws an error to my face:

WebSocket connection to 'ws://127.0.0.1:15674/ws' failed: Error during WebSocket handshake: Unexpected response code: 404

Further tests with netcat confirm 404:

#  netcat -nv 127.0.0.1 15674
127.0.0.1 15674 open
GET /ws HTTP/1.1 
Host: 127.0.0.1

HTTP/1.1 404 Not Found
Connection: close
Content-Length: 0
Date: Sat, 23 Jan 2016 20:15:13 GMT
Server: Cowboy

Obviously cowboy does not expose /ws path, so I wonder:

EDIT

RabbitMQ docs are misleading. Correct WebSocket URI:

http://127.0.0.1:15674/stomp/websocket

Upvotes: 4

Views: 2343

Answers (1)

omnomnom
omnomnom

Reputation: 290

good job, but:

new WebSocket('http://127.0.0.1:15674/stomp/websocket')

VM98:2 Uncaught DOMException: Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. 'http' is not allowed.(…)(anonymous function) ...

need to use ws/wss-schema:

new WebSocket('ws://127.0.0.1:15674/stomp/websocket')

WebSocket {url: "ws://127.0.0.1:15674/stomp/websocket", readyState: 0, bufferedAmount: 0, onopen: null, onerror: null…}

Upvotes: 2

Related Questions