arnaucube
arnaucube/raspberryGPIOhtmlserverPublic Self-hosted repository
raspberryGPIOhtmlserver/node_modules/socket.io-client/lib/index.js
node_modules/socket.io-client/lib/index.jsRaw
 1
 2/**
 3 * Module dependencies.
 4 */
 5
 6var url = require('./url');
 7var parser = require('socket.io-parser');
 8var Manager = require('./manager');
 9var debug = require('debug')('socket.io-client');
10
11/**
12 * Module exports.
13 */
14
15module.exports = exports = lookup;
16
17/**
18 * Managers cache.
19 */
20
21var cache = exports.managers = {};
22
23/**
24 * Looks up an existing `Manager` for multiplexing.
25 * If the user summons:
26 *
27 *   `io('http://localhost/a');`
28 *   `io('http://localhost/b');`
29 *
30 * We reuse the existing instance based on same scheme/port/host,
31 * and we initialize sockets for each namespace.
32 *
33 * @api public
34 */
35
36function lookup(uri, opts) {
37  if (typeof uri == 'object') {
38    opts = uri;
39    uri = undefined;
40  }
41
42  opts = opts || {};
43
44  var parsed = url(uri);
45  var source = parsed.source;
46  var id = parsed.id;
47  var io;
48
49  if (opts.forceNew || opts['force new connection'] || false === opts.multiplex) {
50    debug('ignoring socket cache for %s', source);
51    io = Manager(source, opts);
52  } else {
53    if (!cache[id]) {
54      debug('new io instance for %s', source);
55      cache[id] = Manager(source, opts);
56    }
57    io = cache[id];
58  }
59
60  return io.socket(parsed.path);
61}
62
63/**
64 * Protocol version.
65 *
66 * @api public
67 */
68
69exports.protocol = parser.protocol;
70
71/**
72 * `connect`.
73 *
74 * @param {String} uri
75 * @api public
76 */
77
78exports.connect = lookup;
79
80/**
81 * Expose constructors for standalone build.
82 *
83 * @api public
84 */
85
86exports.Manager = require('./manager');
87exports.Socket = require('./socket');