4 * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
12 var client = require('socket.io-client');
18 exports.version = '0.9.16';
21 * Supported protocol version.
27 * Client that we serve.
30 exports.clientVersion = client.version;
35 * @param {HTTPServer/Number} a HTTP/S server or a port number to listen on.
36 * @param {Object} opts to be passed to Manager and/or http server
37 * @param {Function} callback if a port is supplied
41 exports.listen = function (server, options, fn) {
42 if ('function' == typeof server) {
43 console.warn('Socket.IO\'s `listen()` method expects an `http.Server` instance\n'
44 + 'as its first parameter. Are you migrating from Express 2.x to 3.x?\n'
45 + 'If so, check out the "Socket.IO compatibility" section at:\n'
46 + 'https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x');
49 if ('function' == typeof options) {
54 if ('undefined' == typeof server) {
55 // create a server that listens on port 80
59 if ('number' == typeof server) {
60 // if a port number is passed
63 if (options && options.key)
64 server = require('https').createServer(options);
66 server = require('http').createServer();
69 server.on('request', function (req, res) {
71 res.end('Welcome to socket.io.');
74 server.listen(port, fn);
77 // otherwise assume a http/s server
78 return new exports.Manager(server, options);
82 * Manager constructor.
87 exports.Manager = require('./manager');
90 * Transport constructor.
95 exports.Transport = require('./transport');
103 exports.Socket = require('./socket');
106 * Static constructor.
111 exports.Static = require('./static');
119 exports.Store = require('./store');
122 * Memory Store constructor.
127 exports.MemoryStore = require('./stores/memory');
130 * Redis Store constructor.
135 exports.RedisStore = require('./stores/redis');
143 exports.parser = require('./parser');