mirror of
https://github.com/http-party/node-http-proxy.git
synced 2025-12-08 20:59:18 +00:00
[test] Improve websocket tests to inspect outgoing and incoming HTTP headers to test origin mismatch bugs
This commit is contained in:
parent
360e79a005
commit
6e679c8019
@ -64,7 +64,14 @@ vows.describe('node-http-proxy/websocket').addBatch({
|
||||
//
|
||||
// Setup the web socket against our proxy
|
||||
//
|
||||
var ws = new websocket.WebSocket('ws://localhost:8131/socket.io/websocket/', 'borf');
|
||||
var ws = new websocket.WebSocket('ws://localhost:8131/socket.io/websocket/', 'borf', {
|
||||
origin: 'localhost'
|
||||
});
|
||||
|
||||
ws.on('wsupgrade', function (req, res) {
|
||||
require('eyes').inspect(req);
|
||||
require('eyes').inspect(res.headers);
|
||||
});
|
||||
|
||||
ws.on('open', function () {
|
||||
ws.send(utils.encode('from client'));
|
||||
@ -91,7 +98,15 @@ vows.describe('node-http-proxy/websocket').addBatch({
|
||||
//
|
||||
// Setup the web socket against our proxy
|
||||
//
|
||||
var ws = new websocket.WebSocket('ws://localhost:8133/socket.io/websocket/', 'borf');
|
||||
var ws = new websocket.WebSocket('ws://localhost:8133/socket.io/websocket/', 'borf', {
|
||||
origin: 'localhost'
|
||||
});
|
||||
|
||||
ws.on('wsupgrade', function (req, res) {
|
||||
require('eyes').inspect(req);
|
||||
require('eyes').inspect(res.headers);
|
||||
});
|
||||
|
||||
|
||||
ws.on('message', function (msg) {
|
||||
msg = utils.decode(msg);
|
||||
|
||||
11
vendor/websocket.js
vendored
11
vendor/websocket.js
vendored
@ -523,14 +523,20 @@ var WebSocket = function(url, proto, opts) {
|
||||
httpClient.on('upgrade', (function() {
|
||||
var data = undefined;
|
||||
|
||||
return function(req, s, head) {
|
||||
return function(res, s, head) {
|
||||
stream = s;
|
||||
|
||||
//
|
||||
// Emit the `wsupgrade` event to inspect the raw
|
||||
// arguments returned from the websocket request.
|
||||
//
|
||||
self.emit('wsupgrade', httpHeaders, res, s, head);
|
||||
|
||||
stream.on('data', function(d) {
|
||||
if (d.length <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!data) {
|
||||
data = d;
|
||||
} else {
|
||||
@ -614,7 +620,6 @@ var WebSocket = function(url, proto, opts) {
|
||||
});
|
||||
|
||||
var httpReq = httpClient.request(httpPath, httpHeaders);
|
||||
|
||||
httpReq.write(challenge, 'binary');
|
||||
httpReq.end();
|
||||
})();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user