socketioMEANseed/server/node_modules/engine.io/lib/engine.io.js
server/node_modules/engine.io/lib/engine.io.jsRaw
1/**
2 * Module dependencies.
3 */
4
5var http = require('http');
6
7/**
8 * Invoking the library as a function delegates to attach if the first argument
9 * is an `http.Server`.
10 *
11 * If there are no arguments or the first argument is an options object, then
12 * a new Server instance is returned.
13 *
14 * @param {http.Server} server (if specified, will be attached to by the new Server instance)
15 * @param {Object} options
16 * @return {Server} engine server
17 * @api public
18 */
19
20exports = module.exports = function () {
21 // backwards compatible use as `.attach`
22 // if first argument is an http server
23 if (arguments.length && arguments[0] instanceof http.Server) {
24 return attach.apply(this, arguments);
25 }
26
27 // if first argument is not an http server, then just make a regular eio server
28 return exports.Server.apply(null, arguments);
29};
30
31/**
32 * Protocol revision number.
33 *
34 * @api public
35 */
36
37exports.protocol = 1;
38
39/**
40 * Expose Server constructor.
41 *
42 * @api public
43 */
44
45exports.Server = require('./server');
46
47/**
48 * Expose Socket constructor.
49 *
50 * @api public
51 */
52
53exports.Socket = require('./socket');
54
55/**
56 * Expose Transport constructor.
57 *
58 * @api public
59 */
60
61exports.Transport = require('./transport');
62
63/**
64 * Expose mutable list of available transports.
65 *
66 * @api public
67 */
68
69exports.transports = require('./transports');
70
71/**
72 * Exports parser.
73 *
74 * @api public
75 */
76
77exports.parser = require('engine.io-parser');
78
79/**
80 * Creates an http.Server exclusively used for WS upgrades.
81 *
82 * @param {Number} port
83 * @param {Function} callback
84 * @param {Object} options
85 * @return {Server} websocket.io server
86 * @api public
87 */
88
89exports.listen = listen;
90
91function listen (port, options, fn) {
92 if ('function' === typeof options) {
93 fn = options;
94 options = {};
95 }
96
97 var server = http.createServer(function (req, res) {
98 res.writeHead(501);
99 res.end('Not Implemented');
100 });
101
102 server.listen(port, fn);
103
104 // create engine server
105 var engine = exports.attach(server, options);
106 engine.httpServer = server;
107
108 return engine;
109}
110
111/**
112 * Captures upgrade requests for a http.Server.
113 *
114 * @param {http.Server} server
115 * @param {Object} options
116 * @return {Server} engine server
117 * @api public
118 */
119
120exports.attach = attach;
121
122function attach (server, options) {
123 var engine = new exports.Server(options);
124 engine.attach(server, options);
125 return engine;
126}