144 lines
2.4 KiB
JavaScript
144 lines
2.4 KiB
JavaScript
|
|
||
|
/*!
|
||
|
* socket.io-node
|
||
|
* Copyright(c) 2011 LearnBoost <dev@learnboost.com>
|
||
|
* MIT Licensed
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Module dependencies.
|
||
|
*/
|
||
|
|
||
|
var client = require('socket.io-client');
|
||
|
|
||
|
/**
|
||
|
* Version.
|
||
|
*/
|
||
|
|
||
|
exports.version = '0.9.11';
|
||
|
|
||
|
/**
|
||
|
* Supported protocol version.
|
||
|
*/
|
||
|
|
||
|
exports.protocol = 1;
|
||
|
|
||
|
/**
|
||
|
* Client that we serve.
|
||
|
*/
|
||
|
|
||
|
exports.clientVersion = client.version;
|
||
|
|
||
|
/**
|
||
|
* Attaches a manager
|
||
|
*
|
||
|
* @param {HTTPServer/Number} a HTTP/S server or a port number to listen on.
|
||
|
* @param {Object} opts to be passed to Manager and/or http server
|
||
|
* @param {Function} callback if a port is supplied
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
exports.listen = function (server, options, fn) {
|
||
|
if ('function' == typeof server) {
|
||
|
console.warn('Socket.IO\'s `listen()` method expects an `http.Server` instance\n'
|
||
|
+ 'as its first parameter. Are you migrating from Express 2.x to 3.x?\n'
|
||
|
+ 'If so, check out the "Socket.IO compatibility" section at:\n'
|
||
|
+ 'https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x');
|
||
|
}
|
||
|
|
||
|
if ('function' == typeof options) {
|
||
|
fn = options;
|
||
|
options = {};
|
||
|
}
|
||
|
|
||
|
if ('undefined' == typeof server) {
|
||
|
// create a server that listens on port 80
|
||
|
server = 80;
|
||
|
}
|
||
|
|
||
|
if ('number' == typeof server) {
|
||
|
// if a port number is passed
|
||
|
var port = server;
|
||
|
|
||
|
if (options && options.key)
|
||
|
server = require('https').createServer(options);
|
||
|
else
|
||
|
server = require('http').createServer();
|
||
|
|
||
|
// default response
|
||
|
server.on('request', function (req, res) {
|
||
|
res.writeHead(200);
|
||
|
res.end('Welcome to socket.io.');
|
||
|
});
|
||
|
|
||
|
server.listen(port, fn);
|
||
|
}
|
||
|
|
||
|
// otherwise assume a http/s server
|
||
|
return new exports.Manager(server, options);
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Manager constructor.
|
||
|
*
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
exports.Manager = require('./manager');
|
||
|
|
||
|
/**
|
||
|
* Transport constructor.
|
||
|
*
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
exports.Transport = require('./transport');
|
||
|
|
||
|
/**
|
||
|
* Socket constructor.
|
||
|
*
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
exports.Socket = require('./socket');
|
||
|
|
||
|
/**
|
||
|
* Static constructor.
|
||
|
*
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
exports.Static = require('./static');
|
||
|
|
||
|
/**
|
||
|
* Store constructor.
|
||
|
*
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
exports.Store = require('./store');
|
||
|
|
||
|
/**
|
||
|
* Memory Store constructor.
|
||
|
*
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
exports.MemoryStore = require('./stores/memory');
|
||
|
|
||
|
/**
|
||
|
* Redis Store constructor.
|
||
|
*
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
exports.RedisStore = require('./stores/redis');
|
||
|
|
||
|
/**
|
||
|
* Parser.
|
||
|
*
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
exports.parser = require('./parser');
|