mirror of
https://github.com/bitinflow/server.git
synced 2026-03-13 13:35:53 +00:00
fix websocket support
This commit is contained in:
63
test/websocket.js
Normal file
63
test/websocket.js
Normal file
@@ -0,0 +1,63 @@
|
||||
var http = require('http');
|
||||
var url = require('url');
|
||||
var assert = require('assert');
|
||||
var localtunnel = require('localtunnel');
|
||||
var WebSocket = require('ws');
|
||||
var WebSocketServer = require('ws').Server;
|
||||
|
||||
var localtunnel_server = require('../server')();
|
||||
|
||||
var lt_server_port
|
||||
|
||||
test('setup localtunnel server', function(done) {
|
||||
var server = localtunnel_server.listen(function() {
|
||||
lt_server_port = server.address().port;
|
||||
console.log('lt server on:', lt_server_port);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('setup local websocket server', function(done) {
|
||||
|
||||
var wss = new WebSocketServer({ port: 0 }, function() {
|
||||
test._fake_port = wss._server.address().port;
|
||||
done();
|
||||
});
|
||||
|
||||
wss.on('connection', function connection(ws) {
|
||||
ws.on('message', function incoming(message) {
|
||||
ws.send(message);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test('setup localtunnel client', function(done) {
|
||||
var opt = {
|
||||
host: 'http://localhost:' + lt_server_port,
|
||||
};
|
||||
|
||||
localtunnel(test._fake_port, opt, function(err, tunnel) {
|
||||
assert.ifError(err);
|
||||
var url = tunnel.url;
|
||||
assert.ok(new RegExp('^http:\/\/.*localhost:' + lt_server_port + '$').test(url));
|
||||
test._fake_url = url;
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
test('test websocket server request', function(done) {
|
||||
var hostname = url.parse(test._fake_url).hostname;
|
||||
var ws = new WebSocket('http://localhost:' + lt_server_port, {
|
||||
headers: {
|
||||
host: hostname + '.tld'
|
||||
}
|
||||
});
|
||||
ws.on('message', function(msg) {
|
||||
assert.equal(msg, 'something');
|
||||
done();
|
||||
});
|
||||
|
||||
ws.on('open', function open() {
|
||||
ws.send('something');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user