|
|
@ -7,6 +7,7 @@ var http = require("http"); |
|
|
|
|
|
|
|
var requests_recv = 0; |
|
|
|
var requests_sent = 0; |
|
|
|
var request_upgradeHead = null; |
|
|
|
|
|
|
|
function createTestServer(){ |
|
|
|
return new testServer(); |
|
|
@ -27,12 +28,13 @@ function testServer(){ |
|
|
|
}); |
|
|
|
|
|
|
|
server.addListener("upgrade", function(req, socket, upgradeHead){ |
|
|
|
socket.write([ |
|
|
|
"HTTP/1.1 101 Web Socket Protocol Handshake", |
|
|
|
"Upgrade: WebSocket", |
|
|
|
"Connection: Upgrade", |
|
|
|
"\r\n" |
|
|
|
].join("\r\n"), "utf8"); |
|
|
|
socket.write( "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" |
|
|
|
+ "Upgrade: WebSocket\r\n" |
|
|
|
+ "Connection: Upgrade\r\n" |
|
|
|
+ "\r\n\r\n" |
|
|
|
); |
|
|
|
|
|
|
|
request_upgradeHead = upgradeHead; |
|
|
|
|
|
|
|
socket.ondata = function(d, start, end){ |
|
|
|
var data = d.toString('utf8', start, end); |
|
|
@ -68,7 +70,13 @@ function test_upgrade_with_listener(_server){ |
|
|
|
var state = 0; |
|
|
|
|
|
|
|
conn.addListener("connect", function () { |
|
|
|
writeReq(conn, "GET / HTTP/1.1\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\n\r\n"); |
|
|
|
writeReq( conn |
|
|
|
, "GET / HTTP/1.1\r\n" |
|
|
|
+ "Upgrade: WebSocket\r\n" |
|
|
|
+ "Connection: Upgrade\r\n" |
|
|
|
+ "\r\n" |
|
|
|
+ "WjN}|M(6" |
|
|
|
); |
|
|
|
}); |
|
|
|
|
|
|
|
conn.addListener("data", function(data){ |
|
|
@ -76,6 +84,7 @@ function test_upgrade_with_listener(_server){ |
|
|
|
|
|
|
|
if(state == 1){ |
|
|
|
assert.equal("HTTP/1.1 101", data.substr(0, 12)); |
|
|
|
assert.equal("WjN}|M(6", request_upgradeHead.toString("utf8")); |
|
|
|
conn.write("test", "utf8"); |
|
|
|
} else if(state == 2) { |
|
|
|
assert.equal("test", data); |
|
|
@ -138,6 +147,7 @@ server.addListener("listening", function(){ |
|
|
|
// All tests get chained after this:
|
|
|
|
test_upgrade_with_listener(server); |
|
|
|
}); |
|
|
|
|
|
|
|
server.listen(PORT); |
|
|
|
|
|
|
|
|
|
|
|