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