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');