diff --git a/lib/websocket.js b/lib/websocket.js index aece46e..0c5479f 100644 --- a/lib/websocket.js +++ b/lib/websocket.js @@ -5,7 +5,10 @@ var events = require('events'); var http = require('http'); var net = require('net'); var urllib = require('url'); -var sys = require('sys'); + +var reg = /^v0.([0-9]+)/i.exec(process.version); +var oldVersion = reg ? +reg[1] <= 4 : false; +var sys = oldVersion ? require('sys') : require('util'); var FRAME_NO = 0; var FRAME_LO = 1; @@ -473,9 +476,15 @@ var WebSocket = function(url, proto, opts) { switch (getUrlScheme(url)) { case 'ws': var u = urllib.parse(url); - httpClient = http.createClient(u.port || 80, u.hostname); httpPath = (u.pathname || '/') + (u.search || ''); httpHeaders.Host = u.hostname + (u.port ? (":" + u.port) : ""); + var options = { + port: u.port || 80, + host: u.hostname, + path: httpPath, + headers: httpHeaders + }; + httpClient = oldVersion ? http.createClient(u.port || 80, u.hostname) : http.request(options); break; case 'ws+unix': @@ -581,7 +590,7 @@ var WebSocket = function(url, proto, opts) { errorListener(e); }); - var httpReq = httpClient.request(httpPath, httpHeaders); + var httpReq = oldVersion ? httpClient.request(httpPath, httpHeaders) : httpClient; httpReq.write(challenge, 'binary'); httpReq.end();