StompBrokerJS icon indicating copy to clipboard operation
StompBrokerJS copied to clipboard

Simple connection attempt from browser does not work

Open marcusegues opened this issue 5 years ago • 3 comments

I am having an issue setting up a simple connection from a browser to the node example given.

Server code:

var http = require("http");
var StompServer = require('stomp-broker-js');

var server = http.createServer();
var stompServer = new StompServer({server: server});

server.listen(9999);

stompServer.on('connecting', function() {
    console.log("CONNECTING")
})

stompServer.subscribe("/**", function(msg, headers) {
    var topic = headers.destination;
    console.log(topic, "->", msg);
});

stompServer.send('/test', {}, 'testMsg');

Browser code:

  import * as Stomp from '@stomp/stompjs';

  // connect to local server
  const ws = new WebSocket('ws://localhost:9999');

  const client = Stomp.over(ws);

  client.debug = () => undefined;

  client.connect(
    {},
    frame => {
      console.log('Connected', frame);
    },
    (error: any) => console.log('Error', error)
  );

I am just copying what is in the docs as regards the server code. I am using @stomp/stompjs client to connect.

The error I get is: WebSocket connection to 'ws://localhost:9999/' failed: Error during WebSocket handshake: Unexpected response code: 400

marcusegues avatar Oct 03 '19 08:10 marcusegues

+1 I am experiencing the exact same issue

Pringels avatar Nov 28 '19 12:11 Pringels

You have to add /stomp at the end of the url. So in your case it should be: const ws = new WebSocket('ws://localhost:9999/stomp');

npapp avatar Sep 02 '20 11:09 npapp

The default value of config.path is "/stomp" base on the code https://github.com/4ib3r/StompBrokerJS/blob/master/lib/config.js#L7

giiska avatar May 08 '21 09:05 giiska