// Generated by CoffeeScript 1.7.1
|
|
/*
|
Stomp Over WebSocket http://www.jmesnil.net/stomp-websocket/doc/ | Apache License V2.0
|
|
Copyright (C) 2013 [Jeff Mesnil](http://jmesnil.net/)
|
*/
|
|
(function() {
|
var Stomp, net, overTCP, overWS, wrapTCP, wrapWS;
|
|
Stomp = require('./stomp');
|
|
net = require('net');
|
|
Stomp.Stomp.setInterval = function(interval, f) {
|
return setInterval(f, interval);
|
};
|
|
Stomp.Stomp.clearInterval = function(id) {
|
return clearInterval(id);
|
};
|
|
wrapTCP = function(port, host) {
|
var socket, ws;
|
socket = null;
|
ws = {
|
url: 'tcp:// ' + host + ':' + port,
|
send: function(d) {
|
return socket.write(d);
|
},
|
close: function() {
|
return socket.end();
|
}
|
};
|
socket = net.connect(port, host, function(e) {
|
return ws.onopen();
|
});
|
socket.on('error', function(e) {
|
return typeof ws.onclose === "function" ? ws.onclose(e) : void 0;
|
});
|
socket.on('close', function(e) {
|
return typeof ws.onclose === "function" ? ws.onclose(e) : void 0;
|
});
|
socket.on('data', function(data) {
|
var event;
|
event = {
|
'data': data.toString()
|
};
|
return ws.onmessage(event);
|
});
|
return ws;
|
};
|
|
wrapWS = function(url) {
|
var WebSocketClient, connection, socket, ws;
|
WebSocketClient = require('websocket').client;
|
connection = null;
|
ws = {
|
url: url,
|
send: function(d) {
|
return connection.sendUTF(d);
|
},
|
close: function() {
|
return connection.close();
|
}
|
};
|
socket = new WebSocketClient();
|
socket.on('connect', function(conn) {
|
connection = conn;
|
ws.onopen();
|
connection.on('error', function(error) {
|
return typeof ws.onclose === "function" ? ws.onclose(error) : void 0;
|
});
|
connection.on('close', function() {
|
return typeof ws.onclose === "function" ? ws.onclose() : void 0;
|
});
|
return connection.on('message', function(message) {
|
var event;
|
if (message.type === 'utf8') {
|
event = {
|
'data': message.utf8Data
|
};
|
return ws.onmessage(event);
|
}
|
});
|
});
|
socket.connect(url);
|
return ws;
|
};
|
|
overTCP = function(host, port) {
|
var socket;
|
socket = wrapTCP(port, host);
|
return Stomp.Stomp.over(socket);
|
};
|
|
overWS = function(url) {
|
var socket;
|
socket = wrapWS(url);
|
return Stomp.Stomp.over(socket);
|
};
|
|
exports.overTCP = overTCP;
|
|
exports.overWS = overWS;
|
|
}).call(this);
|