Stomp Over WebSocket http://www.jmesnil.net/stomp-websocket/doc/ | Apache License V2.0
Copyright (C) 2013 [Jeff Mesnil](http://jmesnil.net/)
The library can be used in node.js app to connect to STOMP brokers over TCP or Web sockets.
Stomp Over WebSocket http://www.jmesnil.net/stomp-websocket/doc/ | Apache License V2.0
Copyright (C) 2013 [Jeff Mesnil](http://jmesnil.net/)
Stomp = require('./stomp')
net = require('net')
in node.js apps, setInterval
and clearInterval
methods used to handle
hear-beats are implemented using node.js Timers
Stomp.Stomp.setInterval = (interval, f) ->
setInterval f, interval
Stomp.Stomp.clearInterval = (id) ->
clearInterval id
wrap a TCP socket (provided by node.js’s net module) in a “Web Socket”-like object
wrapTCP = (port, host) ->
the raw TCP socket
socket = null
the “Web Socket”-like object expected by stomp.js
ws = {
url: 'tcp:// ' + host + ':' + port
send: (d) -> socket.write(d)
close: -> socket.end()
}
socket = net.connect port, host, (e) -> ws.onopen()
socket.on 'error', (e) -> ws.onclose?(e)
socket.on 'close', (e) -> ws.onclose?(e)
socket.on 'data', (data) ->
event = {
'data': data.toString()
}
ws.onmessage(event)
return ws
wrap a Web Socket connection (provided by the websocket npm module) in a “Web Socket”-like object
wrapWS = (url) ->
WebSocketClient = require('websocket').client
the underlying connection that will be wrapped
connection = null
the “Web Socket”-like object expected by stomp.js
ws = {
url: url
send: (d) -> connection.sendUTF(d)
close: ->connection.close()
}
socket = new WebSocketClient()
socket.on 'connect', (conn) ->
connection = conn
ws.onopen()
connection.on 'error', (error) -> ws.onclose?(error)
connection.on 'close', -> ws.onclose?()
connection.on 'message', (message) ->
if message.type == 'utf8'
event = {
'data': message.utf8Data
}
ws.onmessage(event)
socket.connect url
return ws
This method can be used by node.js app to connect to a STOMP broker over a TCP socket
overTCP = (host, port) ->
socket = wrapTCP port, host
Stomp.Stomp.over socket
This method can be used by node.js app to connect to a STOMP broker over a Web socket
overWS = (url) ->
socket = wrapWS url
Stomp.Stomp.over socket
exports.overTCP = overTCP
exports.overWS = overWS