Spring websocket over stomp

Viewed 2334

Im new to websocket and have been exploring spring websocket solution, I've implemented the hello world application from the following url: Spring websocket.

Instead of using the index.html page, I would like to call the server from nodejs. Here is my implementation with SockJS and Stompjs.

var url = 'http://localhost:8080'

var SockJS = require('sockjs-client'),
    Stomp  = require('stompjs'),
    socket = new SockJS(url + '/hello'),

    client = Stomp.over(socket)

function connect(){
  client.connect({}, function(frame){
    console.log(frame)
    client.subscribe(url + '/topic/greetings', function(greeting){
      console.log(greeting)
    })
  })
}

function sendName(){
  var name = 'Gideon'
  client.send(url + '/app/hello', {}, JSON.stringify({ 'name': name }))
}

function disconnect(){
  if(client)
    client.disconnect()
}

function start(){
  connect()
  sendName()
}

start();

I run the script with node --harmony index.js

This are the errors i'm getting when trying different url:

url :var socket = new SockJS('http://localhost:8080/hello')
Error: InvalidStateError: The connection has not been established yet

url: var socket = new SockJS('/hello')
Error: The URL '/hello' is invalid

url: var socket = new SockJS('ws://localhost:8080/hello')  
Error: The URL's scheme must be either 'http:' or 'https:'. '" + parsedUrl.protocol + "' is not allowed.

My dependencies

"dependencies": {
   "sockjs-client": "^1.0.3",
   "stompjs": "^2.3.3"
 }

Project can be found here: https://bitbucket.org/gideon_o/spring-websocket-test

1 Answers
Related