4ib3r / StompBrokerJS

NodeJS StompBroker
MIT License
36 stars 28 forks source link

Simple connection attempt from browser does not work #22

Open marcusegues opened 5 years ago

marcusegues commented 5 years ago

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

Pringels commented 4 years ago

+1 I am experiencing the exact same issue

npapp commented 4 years ago

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');

giiska commented 3 years ago

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