55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
require('jsclass')
|
|
|
|
var WebSocket = require('../lib/faye/websocket'),
|
|
fs = require('fs'),
|
|
http = require('http'),
|
|
https = require('https')
|
|
|
|
|
|
JS.ENV.EchoServer = function() {}
|
|
EchoServer.prototype.listen = function(port, ssl) {
|
|
var server = ssl
|
|
? https.createServer({
|
|
key: fs.readFileSync(__dirname + '/server.key'),
|
|
cert: fs.readFileSync(__dirname + '/server.crt')
|
|
})
|
|
: http.createServer()
|
|
|
|
server.addListener('upgrade', function(request, socket, head) {
|
|
var ws = new WebSocket(request, socket, head, ["echo"])
|
|
ws.onmessage = function(event) {
|
|
ws.send(event.data)
|
|
}
|
|
})
|
|
this._httpServer = server
|
|
server.listen(port)
|
|
}
|
|
EchoServer.prototype.stop = function(callback, scope) {
|
|
this._httpServer.addListener('close', function() {
|
|
if (callback) callback.call(scope);
|
|
});
|
|
this._httpServer.close();
|
|
}
|
|
|
|
|
|
JS.Packages(function() { with(this) {
|
|
autoload(/.*Spec/, {from: 'spec/faye/websocket'})
|
|
}})
|
|
|
|
|
|
JS.require('JS.Test', function() {
|
|
JS.Test.Unit.Assertions.define("assertBufferEqual", function(array, buffer) {
|
|
this.assertEqual(array.length, buffer.length);
|
|
var ary = [], n = buffer.length;
|
|
while (n--) ary[n] = buffer[n];
|
|
this.assertEqual(array, ary);
|
|
})
|
|
|
|
JS.require( 'ClientSpec',
|
|
'Draft75ParserSpec',
|
|
'Draft76ParserSpec',
|
|
'HybiParserSpec',
|
|
JS.Test.method('autorun'))
|
|
})
|
|
|