Compare commits

...

12 Commits
3.0.1 ... 3.0.4

Author SHA1 Message Date
Damien Arrachequesne
81c1f4e819 chore(release): 3.0.4
Diff: https://github.com/socketio/socket.io/compare/3.0.3...3.0.4
2020-12-07 12:01:24 +01:00
Damien Arrachequesne
1fba399b17 ci: migrate to GitHub Actions
Due to the recent changes to the Travis CI platform (see [1]), we will
now use GitHub Actions to run the tests.

Reference: https://docs.github.com/en/free-pro-team@latest/actions/guides/building-and-testing-nodejs

[1]: https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing
2020-12-07 11:37:03 +01:00
Stijn de Witt
4e6d40493d chore: make tests work on Windows (#3708) 2020-11-28 01:55:19 +01:00
Pablo Tejada
28c7cc0856 style(issue-template): fix typo (#3700)
[skip ci]
2020-11-25 11:09:17 +01:00
Damien Arrachequesne
06a2bd313a chore(release): 3.0.3
Diff: https://github.com/socketio/socket.io/compare/3.0.2...3.0.3
2020-11-19 01:31:31 +01:00
Damien Arrachequesne
85ebd356e9 chore: cleanup dist folder before compilation 2020-11-19 01:28:27 +01:00
Damien Arrachequesne
9b6f9711da chore(release): 3.0.2
Diff: https://github.com/socketio/socket.io/compare/3.0.1...3.0.2
2020-11-18 00:53:51 +01:00
Damien Arrachequesne
43705d7a91 fix: merge Engine.IO options
So that the following example:

```js
const io = require('socket.io')({
  pingTimeout: 10000
});

io.listen(3000);
```

behaves the same as:

```js
const io = require('socket.io')(3000, {
  pingTimeout: 10000
});
```

Before this change, the options in the first example were not forwarded
to the Engine.IO constructor, which is not really intuitive.

The previous syntax (which is still valid):

```js
const io = require('socket.io')();

io.listen(3000, {
  pingTimeout: 10000
});
```
2020-11-17 23:33:18 +01:00
Damien Arrachequesne
118cc686a1 chore: add 3rd party types in the list of dependencies
Those types are mandatory for TypeScript users.

Related:

- https://github.com/socketio/socket.io/issues/3690
- https://github.com/microsoft/types-publisher/issues/81#issuecomment-234051345
2020-11-17 11:55:41 +01:00
Damien Arrachequesne
c596e54343 docs(examples): update React Native example
This includes `engine.io-client@4.0.3`, which fixes two issues with
React Native.

See also:

- 177b95fe46
- ccb99e3718

[skip ci]
2020-11-17 09:44:05 +01:00
Damien Arrachequesne
f7e0009120 docs(examples): update TypeScript example
In order to test 50671d984a

[skip ci]
2020-11-09 10:47:50 +01:00
Damien Arrachequesne
e69d0ad602 chore: bump socket.io-client version 2020-11-09 10:32:10 +01:00
23 changed files with 1238 additions and 3024 deletions

View File

@@ -7,10 +7,10 @@
* [ ] a code change that improves performance
* [ ] other
### Current behaviour
### Current behavior
### New behaviour
### New behavior
### Other information (e.g. related issues)

26
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: CI
on:
push:
pull_request:
schedule:
- cron: '0 0 * * 0'
jobs:
test-node:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.x, 12.x, 14.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm test
env:
CI: true

View File

@@ -1,10 +0,0 @@
language: node_js
sudo: false
node_js:
- '10'
- '12'
- '14'
notifications:
irc: "irc.freenode.org#socket.io"
git:
depth: 1

View File

@@ -1,3 +1,17 @@
## [3.0.4](https://github.com/socketio/socket.io/compare/3.0.3...3.0.4) (2020-12-07)
## [3.0.3](https://github.com/socketio/socket.io/compare/3.0.2...3.0.3) (2020-11-19)
## [3.0.2](https://github.com/socketio/socket.io/compare/3.0.1...3.0.2) (2020-11-17)
### Bug Fixes
* merge Engine.IO options ([43705d7](https://github.com/socketio/socket.io/commit/43705d7a9149833afc69edc937ea7f8c9aabfeef))
## [3.0.1](https://github.com/socketio/socket.io/compare/3.0.0...3.0.1) (2020-11-09)

View File

@@ -2,7 +2,7 @@
# socket.io
[![Backers on Open Collective](https://opencollective.com/socketio/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/socketio/sponsors/badge.svg)](#sponsors)
[![Build Status](https://secure.travis-ci.org/socketio/socket.io.svg?branch=master)](https://travis-ci.org/socketio/socket.io)
[![Build Status](https://github.com/socketio/socket.io/workflows/CI/badge.svg)](https://github.com/socketio/socket.io/actions)
[![Dependency Status](https://david-dm.org/socketio/socket.io.svg)](https://david-dm.org/socketio/socket.io)
[![devDependency Status](https://david-dm.org/socketio/socket.io/dev-status.svg)](https://david-dm.org/socketio/socket.io#info=devDependencies)
[![NPM version](https://badge.fury.io/js/socket.io.svg)](https://www.npmjs.com/package/socket.io)

View File

@@ -1,5 +1,5 @@
/*!
* Socket.IO v3.0.1
* Socket.IO v3.0.4
* (c) 2014-2020 Guillermo Rauch
* Released under the MIT License.
*/
@@ -165,7 +165,7 @@ function lookup(uri, opts) {
var source = parsed.source;
var id = parsed.id;
var path = parsed.path;
var sameNamespace = cache[id] && path in cache[id].nsps;
var sameNamespace = cache[id] && path in cache[id]["nsps"];
var newConnection = opts.forceNew || opts["force new connection"] || false === opts.multiplex || sameNamespace;
var io;
@@ -298,7 +298,6 @@ var Manager = /*#__PURE__*/function (_Emitter) {
_this = _super.call(this);
_this.nsps = {};
_this.subs = [];
_this.connecting = [];
if (uri && "object" === _typeof(uri)) {
opts = uri;
@@ -356,25 +355,31 @@ var Manager = /*#__PURE__*/function (_Emitter) {
}, {
key: "reconnectionDelay",
value: function reconnectionDelay(v) {
var _a;
if (v === undefined) return this._reconnectionDelay;
this._reconnectionDelay = v;
this.backoff && this.backoff.setMin(v);
(_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);
return this;
}
}, {
key: "randomizationFactor",
value: function randomizationFactor(v) {
var _a;
if (v === undefined) return this._randomizationFactor;
this._randomizationFactor = v;
this.backoff && this.backoff.setJitter(v);
(_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);
return this;
}
}, {
key: "reconnectionDelayMax",
value: function reconnectionDelayMax(v) {
var _a;
if (v === undefined) return this._reconnectionDelayMax;
this._reconnectionDelayMax = v;
this.backoff && this.backoff.setMax(v);
(_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);
return this;
}
}, {
@@ -404,7 +409,7 @@ var Manager = /*#__PURE__*/function (_Emitter) {
* Sets the current transport `socket`.
*
* @param {Function} fn - optional, callback
* @return {Manager} self
* @return self
* @public
*/
@@ -499,11 +504,7 @@ var Manager = /*#__PURE__*/function (_Emitter) {
var socket = this.engine;
this.subs.push(on_1.on(socket, "data", bind(this, "ondata")));
this.subs.push(on_1.on(socket, "ping", bind(this, "onping")));
this.subs.push(on_1.on(socket, "error", bind(this, "onerror")));
this.subs.push(on_1.on(socket, "close", bind(this, "onclose")));
this.subs.push(on_1.on(this.decoder, "decoded", bind(this, "ondecoded")));
this.subs.push(on_1.on(socket, "data", bind(this, "ondata")), on_1.on(socket, "ping", bind(this, "onping")), on_1.on(socket, "error", bind(this, "onerror")), on_1.on(socket, "close", bind(this, "onclose")), on_1.on(this.decoder, "decoded", bind(this, "ondecoded")));
}
/**
* Called upon a ping.
@@ -566,19 +567,6 @@ var Manager = /*#__PURE__*/function (_Emitter) {
if (!socket) {
socket = new socket_1.Socket(this, nsp, opts);
this.nsps[nsp] = socket;
var self = this;
socket.on("connecting", onConnecting);
if (this._autoConnect) {
// manually call here since connecting event is fired before listening
onConnecting();
}
}
function onConnecting() {
if (!~self.connecting.indexOf(socket)) {
self.connecting.push(socket);
}
}
return socket;
@@ -586,23 +574,31 @@ var Manager = /*#__PURE__*/function (_Emitter) {
/**
* Called upon a socket close.
*
* @param {Socket} socket
* @param socket
* @private
*/
}, {
key: "_destroy",
value: function _destroy(socket) {
var index = this.connecting.indexOf(socket);
if (~index) this.connecting.splice(index, 1);
if (this.connecting.length) return;
var nsps = Object.keys(this.nsps);
for (var _i = 0, _nsps = nsps; _i < _nsps.length; _i++) {
var nsp = _nsps[_i];
var _socket = this.nsps[nsp];
if (_socket.active) {
debug("socket %s is still active, skipping close", nsp);
return;
}
}
this._close();
}
/**
* Writes a packet.
*
* @param {Object} packet
* @param packet
* @private
*/
@@ -786,7 +782,7 @@ function on(obj, ev, fn) {
obj.on(ev, fn);
return {
destroy: function destroy() {
obj.removeListener(ev, fn);
obj.off(ev, fn);
}
};
}
@@ -857,7 +853,7 @@ var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.j
*/
var RESERVED_EVENTS = {
var RESERVED_EVENTS = Object.freeze({
connect: 1,
connect_error: 1,
disconnect: 1,
@@ -865,7 +861,7 @@ var RESERVED_EVENTS = {
// EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener
newListener: 1,
removeListener: 1
};
});
var Socket = /*#__PURE__*/function (_Emitter) {
_inherits(Socket, _Emitter);
@@ -920,17 +916,21 @@ var Socket = /*#__PURE__*/function (_Emitter) {
this.subs = [on_1.on(io, "open", bind(this, "onopen")), on_1.on(io, "packet", bind(this, "onpacket")), on_1.on(io, "close", bind(this, "onclose"))];
}
/**
* "Opens" the socket.
*
* @public
* Whether the Socket will try to reconnect when its Manager connects or reconnects
*/
}, {
key: "connect",
/**
* "Opens" the socket.
*
* @public
*/
value: function connect() {
if (this.connected) return this;
this.subEvents();
if (!this.io._reconnecting) this.io.open(); // ensure open
if (!this.io["_reconnecting"]) this.io.open(); // ensure open
if ("open" === this.io._readyState) this.onopen();
return this;
@@ -947,7 +947,7 @@ var Socket = /*#__PURE__*/function (_Emitter) {
/**
* Sends a `message` event.
*
* @return {Socket} self
* @return self
* @public
*/
@@ -966,8 +966,8 @@ var Socket = /*#__PURE__*/function (_Emitter) {
* Override `emit`.
* If the event is in `events`, it's emitted normally.
*
* @param {String} ev - event name
* @return {Socket} self
* @param ev - event name
* @return self
* @public
*/
@@ -1013,7 +1013,7 @@ var Socket = /*#__PURE__*/function (_Emitter) {
/**
* Sends a packet.
*
* @param {Object} packet
* @param packet
* @private
*/
@@ -1054,7 +1054,7 @@ var Socket = /*#__PURE__*/function (_Emitter) {
/**
* Called upon engine `close`.
*
* @param {String} reason
* @param reason
* @private
*/
@@ -1071,7 +1071,7 @@ var Socket = /*#__PURE__*/function (_Emitter) {
/**
* Called with socket packet.
*
* @param {Object} packet
* @param packet
* @private
*/
@@ -1083,8 +1083,13 @@ var Socket = /*#__PURE__*/function (_Emitter) {
switch (packet.type) {
case socket_io_parser_1.PacketType.CONNECT:
var id = packet.data.sid;
this.onconnect(id);
if (packet.data && packet.data.sid) {
var id = packet.data.sid;
this.onconnect(id);
} else {
_get(_getPrototypeOf(Socket.prototype), "emit", this).call(this, "connect_error", new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));
}
break;
case socket_io_parser_1.PacketType.EVENT:
@@ -1120,7 +1125,7 @@ var Socket = /*#__PURE__*/function (_Emitter) {
/**
* Called upon a server event.
*
* @param {Object} packet
* @param packet
* @private
*/
@@ -1138,7 +1143,7 @@ var Socket = /*#__PURE__*/function (_Emitter) {
if (this.connected) {
this.emitEvent(args);
} else {
this.receiveBuffer.push(args);
this.receiveBuffer.push(Object.freeze(args));
}
}
}, {
@@ -1195,7 +1200,7 @@ var Socket = /*#__PURE__*/function (_Emitter) {
/**
* Called upon a server acknowlegement.
*
* @param {Object} packet
* @param packet
* @private
*/
@@ -1221,6 +1226,7 @@ var Socket = /*#__PURE__*/function (_Emitter) {
}, {
key: "onconnect",
value: function onconnect(id) {
debug("socket connected with id %s", id);
this.id = id;
this.connected = true;
this.disconnected = false;
@@ -1238,16 +1244,15 @@ var Socket = /*#__PURE__*/function (_Emitter) {
}, {
key: "emitBuffered",
value: function emitBuffered() {
for (var i = 0; i < this.receiveBuffer.length; i++) {
this.emitEvent(this.receiveBuffer[i]);
}
var _this3 = this;
this.receiveBuffer.forEach(function (args) {
return _this3.emitEvent(args);
});
this.receiveBuffer = [];
for (var _i = 0; _i < this.sendBuffer.length; _i++) {
this.packet(this.sendBuffer[_i]);
}
this.sendBuffer.forEach(function (packet) {
return _this3.packet(packet);
});
this.sendBuffer = [];
}
/**
@@ -1283,12 +1288,12 @@ var Socket = /*#__PURE__*/function (_Emitter) {
this.subs = null;
}
this.io._destroy(this);
this.io["_destroy"](this);
}
/**
* Disconnects the socket manually.
*
* @return {Socket} self
* @return self
* @public
*/
@@ -1315,7 +1320,7 @@ var Socket = /*#__PURE__*/function (_Emitter) {
/**
* Alias for disconnect()
*
* @return {Socket} self
* @return self
* @public
*/
@@ -1327,8 +1332,8 @@ var Socket = /*#__PURE__*/function (_Emitter) {
/**
* Sets the compress flag.
*
* @param {Boolean} compress - if `true`, compresses the sending data
* @return {Socket} self
* @param compress - if `true`, compresses the sending data
* @return self
* @public
*/
@@ -1342,7 +1347,7 @@ var Socket = /*#__PURE__*/function (_Emitter) {
* Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not
* ready to send messages.
*
* @returns {Socket} self
* @returns self
* @public
*/
@@ -1421,6 +1426,11 @@ var Socket = /*#__PURE__*/function (_Emitter) {
value: function listenersAny() {
return this._anyListeners || [];
}
}, {
key: "active",
get: function get() {
return !!this.subs;
}
}, {
key: "volatile",
get: function get() {
@@ -1457,9 +1467,9 @@ var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.j
/**
* URL parser.
*
* @param {String} uri - url
* @param {Object} loc - An object meant to mimic window.location.
* Defaults to window.location.
* @param uri - url
* @param loc - An object meant to mimic window.location.
* Defaults to window.location.
* @public
*/
@@ -1470,7 +1480,7 @@ function url(uri, loc) {
loc = loc || typeof location !== "undefined" && location;
if (null == uri) uri = loc.protocol + "//" + loc.host; // relative path support
if ("string" === typeof uri) {
if (typeof uri === "string") {
if ("/" === uri.charAt(0)) {
if ("/" === uri.charAt(1)) {
uri = loc.protocol + uri;
@@ -2521,10 +2531,10 @@ var Socket = /*#__PURE__*/function (_Emitter) {
_this.opts = _extends({
path: "/engine.io",
agent: false,
withCredentials: false,
upgrade: true,
jsonp: true,
timestampParam: "t",
policyPort: 843,
rememberUpgrade: false,
rejectUnauthorized: true,
perMessageDeflate: {
@@ -3662,8 +3672,6 @@ var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.j
function empty() {}
var hasXHR2 = function () {
var XMLHttpRequest = __webpack_require__(/*! xmlhttprequest-ssl */ "./node_modules/engine.io-client/lib/xmlhttprequest.js");
var xhr = new XMLHttpRequest({
xdomain: false
});
@@ -3722,7 +3730,6 @@ var XHR = /*#__PURE__*/function (_Polling) {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
_extends(opts, {
supportsBinary: this.supportsBinary,
xd: this.xd,
xs: this.xs
}, this.opts);
@@ -3740,11 +3747,9 @@ var XHR = /*#__PURE__*/function (_Polling) {
}, {
key: "doWrite",
value: function doWrite(data, fn) {
var isBinary = typeof data !== "string" && data !== undefined;
var req = this.request({
method: "POST",
data: data,
isBinary: isBinary
data: data
});
var self = this;
req.on("success", fn);
@@ -3799,8 +3804,6 @@ var Request = /*#__PURE__*/function (_Emitter) {
_this2.uri = uri;
_this2.async = false !== opts.async;
_this2.data = undefined !== opts.data ? opts.data : null;
_this2.isBinary = opts.isBinary;
_this2.supportsBinary = opts.supportsBinary;
_this2.create();
@@ -3836,17 +3839,11 @@ var Request = /*#__PURE__*/function (_Emitter) {
}
}
}
} catch (e) {
console.log(e);
}
} catch (e) {}
if ("POST" === this.method) {
try {
if (this.isBinary) {
xhr.setRequestHeader("Content-type", "application/octet-stream");
} else {
xhr.setRequestHeader("Content-type", "text/plain;charset=UTF-8");
}
xhr.setRequestHeader("Content-type", "text/plain;charset=UTF-8");
} catch (e) {}
}
@@ -3873,16 +3870,6 @@ var Request = /*#__PURE__*/function (_Emitter) {
};
} else {
xhr.onreadystatechange = function () {
if (xhr.readyState === 2) {
try {
var contentType = xhr.getResponseHeader("Content-Type");
if (self.supportsBinary && contentType === "application/octet-stream" || contentType === "application/octet-stream; charset=UTF-8") {
xhr.responseType = "arraybuffer";
}
} catch (e) {}
}
if (4 !== xhr.readyState) return;
if (200 === xhr.status || 1223 === xhr.status) {
@@ -4188,7 +4175,7 @@ var Polling = /*#__PURE__*/function (_Transport) {
var callback = function callback(packet, index, total) {
// if its the first message we consider the transport open
if ("opening" === self.readyState) {
if ("opening" === self.readyState && packet.type === "open") {
self.onOpen();
} // if its a close packet, we close the ongoing requests
@@ -4404,14 +4391,7 @@ var WS = /*#__PURE__*/function (_Transport) {
_classCallCheck(this, WS);
_this = _super.call(this, opts);
var forceBase64 = opts && opts.forceBase64;
if (forceBase64) {
_this.supportsBinary = false;
} // WebSockets support binary
_this.supportsBinary = true;
_this.supportsBinary = !opts.forceBase64;
return _this;
}
/**
@@ -4436,14 +4416,9 @@ var WS = /*#__PURE__*/function (_Transport) {
}
var uri = this.uri();
var protocols = this.opts.protocols;
var opts;
var protocols = this.opts.protocols; // React Native only supports the 'headers' option, and will print a warning if anything else is passed
if (isReactNative) {
opts = pick(this.opts, "localAddress");
} else {
opts = pick(this.opts, "agent", "perMessageDeflate", "pfx", "key", "passphrase", "cert", "ca", "ciphers", "rejectUnauthorized", "localAddress");
}
var opts = isReactNative ? {} : pick(this.opts, "agent", "perMessageDeflate", "pfx", "key", "passphrase", "cert", "ca", "ciphers", "rejectUnauthorized", "localAddress");
if (this.opts.extraHeaders) {
opts.headers = this.opts.extraHeaders;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -14,3 +14,7 @@ $ npm ci
$ npm start # run expo
$ node server.js # run the server
```
You will probably need to update the IP address of your server in the `App.js` file:
![IP address](assets/server-ip.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -1236,6 +1236,11 @@
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
"integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
},
"@types/component-emitter": {
"version": "1.2.10",
"resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz",
"integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg=="
},
"@types/fbemitter": {
"version": "2.0.32",
"resolved": "https://registry.npmjs.org/@types/fbemitter/-/fbemitter-2.0.32.tgz",
@@ -1349,11 +1354,6 @@
"negotiator": "0.6.2"
}
},
"after": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
},
"ansi-colors": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
@@ -1486,11 +1486,6 @@
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
},
"arraybuffer.slice": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
},
"art": {
"version": "0.10.3",
"resolved": "https://registry.npmjs.org/art/-/art-0.10.3.tgz",
@@ -1671,9 +1666,9 @@
}
},
"base64-arraybuffer": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
"integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz",
"integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI="
},
"base64-js": {
"version": "1.3.1",
@@ -1693,14 +1688,6 @@
"safe-buffer": "5.1.2"
}
},
"better-assert": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
"integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
"requires": {
"callsite": "1.0.0"
}
},
"big-integer": {
"version": "1.6.48",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
@@ -1715,11 +1702,6 @@
"file-uri-to-path": "1.0.0"
}
},
"blob": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
"integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
},
"blueimp-md5": {
"version": "2.16.0",
"resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.16.0.tgz",
@@ -1862,11 +1844,6 @@
"caller-callsite": "^2.0.0"
}
},
"callsite": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
"integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
},
"callsites": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
@@ -2072,11 +2049,6 @@
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
},
"component-inherit": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
"integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
},
"compressible": {
"version": "2.0.18",
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
@@ -2165,9 +2137,9 @@
}
},
"cookie": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
},
"copy-descriptor": {
"version": "0.1.1",
@@ -2200,6 +2172,15 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"requires": {
"object-assign": "^4",
"vary": "^1"
}
},
"cosmiconfig": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
@@ -2409,64 +2390,54 @@
}
},
"engine.io": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz",
"integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.0.2.tgz",
"integrity": "sha512-sumdttqWLNjbuSMOSgDdL2xiEld9s5QZDk9VLyr4e28o+lzNNADhU3qpQDAY7cm2VZH0Otw/U0fL8mEjZ6kBMg==",
"requires": {
"accepts": "~1.3.4",
"base64id": "2.0.0",
"cookie": "0.3.1",
"cookie": "~0.4.1",
"cors": "~2.8.5",
"debug": "~4.1.0",
"engine.io-parser": "~2.2.0",
"engine.io-parser": "~4.0.0",
"ws": "^7.1.2"
},
"dependencies": {
"ws": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz",
"integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w=="
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz",
"integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ=="
}
}
},
"engine.io-client": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz",
"integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.3.tgz",
"integrity": "sha512-2U6dZkOrMGpVh11l+4pMXHMDnirnzIPIYfugEUpnAl0/3wBb+GO7euu0TT3Nn8E5hgaWSpUA+XOfrch2uZdyGA==",
"requires": {
"base64-arraybuffer": "0.1.4",
"component-emitter": "~1.3.0",
"component-inherit": "0.0.3",
"debug": "~4.1.0",
"engine.io-parser": "~2.2.0",
"engine.io-parser": "~4.0.1",
"has-cors": "1.1.0",
"indexof": "0.0.1",
"parseqs": "0.0.5",
"parseuri": "0.0.5",
"ws": "~6.1.0",
"parseqs": "0.0.6",
"parseuri": "0.0.6",
"ws": "~7.2.1",
"xmlhttprequest-ssl": "~1.5.4",
"yeast": "0.1.2"
},
"dependencies": {
"ws": {
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
"integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
"requires": {
"async-limiter": "~1.0.0"
}
"version": "7.2.5",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz",
"integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA=="
}
}
},
"engine.io-parser": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz",
"integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==",
"requires": {
"after": "0.8.2",
"arraybuffer.slice": "~0.0.7",
"base64-arraybuffer": "0.1.5",
"blob": "0.0.5",
"has-binary2": "~1.0.2"
}
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.1.tgz",
"integrity": "sha512-v5aZK1hlckcJDGmHz3W8xvI3NUHYc9t8QtTbqdR5OaH3S9iJZilPubauOm+vLWOMMWzpE3hiq92l9lTAHamRCg=="
},
"envinfo": {
"version": "7.5.1",
@@ -3118,21 +3089,6 @@
"resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
"integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE="
},
"has-binary2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
"integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
"requires": {
"isarray": "2.0.1"
},
"dependencies": {
"isarray": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
"integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
}
}
},
"has-cors": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
@@ -3236,11 +3192,6 @@
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
},
"indexof": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -4546,11 +4497,6 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"object-component": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
"integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
},
"object-copy": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
@@ -4763,20 +4709,14 @@
"integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA=="
},
"parseqs": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
"integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
"requires": {
"better-assert": "~1.0.0"
}
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz",
"integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w=="
},
"parseuri": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
"integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
"requires": {
"better-assert": "~1.0.0"
}
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz",
"integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow=="
},
"parseurl": {
"version": "1.3.3",
@@ -5925,101 +5865,45 @@
}
},
"socket.io": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz",
"integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.0.1.tgz",
"integrity": "sha512-oVYbCQ4sCwm4wVi+f1bsE3YFXcvd6b4JjVP8D7IZnQqBeJOKX9XrdgJWSbXqBEqUXPY3jdTqb1M3s4KFTa/IHg==",
"requires": {
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"debug": "~4.1.0",
"engine.io": "~3.4.0",
"has-binary2": "~1.0.2",
"socket.io-adapter": "~1.1.0",
"socket.io-client": "2.3.0",
"socket.io-parser": "~3.4.0"
"engine.io": "~4.0.0",
"socket.io-adapter": "~2.0.3",
"socket.io-parser": "~4.0.1"
}
},
"socket.io-adapter": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz",
"integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g=="
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.3.tgz",
"integrity": "sha512-2wo4EXgxOGSFueqvHAdnmi5JLZzWqMArjuP4nqC26AtLh5PoCPsaRbRdah2xhcwTAMooZfjYiNVNkkmmSMaxOQ=="
},
"socket.io-client": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz",
"integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.1.tgz",
"integrity": "sha512-iIzWRDrF/h3KPtHjvLt5LL/1n7Euvv35zVa1r10ScRjVw40yc8DxFj7GnKrj1RNYkbtveWOwEsy2lWp3oFJO7w==",
"requires": {
"@types/component-emitter": "^1.2.10",
"backo2": "1.0.2",
"base64-arraybuffer": "0.1.5",
"component-bind": "1.0.0",
"component-emitter": "1.2.1",
"component-emitter": "~1.3.0",
"debug": "~4.1.0",
"engine.io-client": "~3.4.0",
"has-binary2": "~1.0.2",
"has-cors": "1.1.0",
"indexof": "0.0.1",
"object-component": "0.0.3",
"parseqs": "0.0.5",
"parseuri": "0.0.5",
"socket.io-parser": "~3.3.0",
"to-array": "0.1.4"
},
"dependencies": {
"component-emitter": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
},
"isarray": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
"integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"socket.io-parser": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
"integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
"requires": {
"component-emitter": "1.2.1",
"debug": "~3.1.0",
"isarray": "2.0.1"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
}
}
}
"engine.io-client": "~4.0.0",
"parseuri": "0.0.6",
"socket.io-parser": "~4.0.1"
}
},
"socket.io-parser": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz",
"integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.1.tgz",
"integrity": "sha512-5JfNykYptCwU2lkOI0ieoePWm+6stEhkZ2UnLDjqnE1YEjUlXXLd1lpxPZ+g+h3rtaytwWkWrLQCaJULlGqjOg==",
"requires": {
"component-emitter": "1.2.1",
"debug": "~4.1.0",
"isarray": "2.0.1"
},
"dependencies": {
"component-emitter": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
},
"isarray": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
"integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
}
"component-emitter": "~1.3.0",
"debug": "~4.1.0"
}
},
"sort-keys": {
@@ -6284,11 +6168,6 @@
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
"integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE="
},
"to-array": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
"integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
},
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",

View File

@@ -13,8 +13,8 @@
"react-dom": "~16.9.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",
"react-native-web": "~0.11.7",
"socket.io": "~2.3.0",
"socket.io-client": "~2.3.0"
"socket.io": "^3.0.1",
"socket.io-client": "^3.0.1"
},
"devDependencies": {
"babel-preset-expo": "~8.1.0",

View File

@@ -8,7 +8,11 @@ io.on('connection', socket => {
});
});
io.listen(3000);
io.listen(3000, {
cors: {
origin: ["http://localhost:19006"]
}
});
setInterval(() => {
io.emit('message', new Date().toISOString());

View File

@@ -1,5 +1,5 @@
{
"name": "typescript",
"name": "typescript-example",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
@@ -81,9 +81,9 @@
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
},
"engine.io": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.0.1.tgz",
"integrity": "sha512-6EaSBxasBUwxRdf6B68SEYpD3tcrG80J4YTzHl/D+9Q+vM0AMHZabfYcc2WdnvEaQxZjX/UZsa+UdGoM0qQQkQ==",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.0.2.tgz",
"integrity": "sha512-sumdttqWLNjbuSMOSgDdL2xiEld9s5QZDk9VLyr4e28o+lzNNADhU3qpQDAY7cm2VZH0Otw/U0fL8mEjZ6kBMg==",
"requires": {
"accepts": "~1.3.4",
"base64id": "2.0.0",
@@ -95,9 +95,9 @@
}
},
"engine.io-client": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.1.tgz",
"integrity": "sha512-3XXfWrEutlf1vg5PlS805bD+AgZXhRIKYAG04f1iCGOs70dWEYlZGfCZUNwPwNx05lBCKs1lIeL3SkLB0P++xw==",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-4.0.2.tgz",
"integrity": "sha512-cfzFu0u7rr/Gmz/CefwZ6mBj9kxtsOtOavV/YLbn+2sPGE1ZTSWh3tj8427a0od+BK27zsWDpnDx98fnpnmksA==",
"requires": {
"base64-arraybuffer": "0.1.4",
"component-emitter": "~1.3.0",
@@ -172,27 +172,27 @@
"integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow=="
},
"socket.io": {
"version": "3.0.0-rc3",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.0.0-rc3.tgz",
"integrity": "sha512-AVIpRd7OTyhCgg5muz0AqeF06csptsnP8UP10ubLrnL7XKplJFDadUB9fEbwB3iLMpf1NT+YfqTBCVKHhpMlZA==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.0.1.tgz",
"integrity": "sha512-oVYbCQ4sCwm4wVi+f1bsE3YFXcvd6b4JjVP8D7IZnQqBeJOKX9XrdgJWSbXqBEqUXPY3jdTqb1M3s4KFTa/IHg==",
"requires": {
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"debug": "~4.1.0",
"engine.io": "~4.0.0",
"socket.io-adapter": "2.0.3-rc2",
"socket.io-parser": "4.0.1-rc3"
"socket.io-adapter": "~2.0.3",
"socket.io-parser": "~4.0.1"
}
},
"socket.io-adapter": {
"version": "2.0.3-rc2",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.3-rc2.tgz",
"integrity": "sha512-ic/fttwhpQ2Ry43ou6gOIeZgpGmsIUFQZ0Ww0DIpCerTKzDdLPG2+AEomG5SGXpppvtbwwesB7O9Azq0JiSs/g=="
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.3.tgz",
"integrity": "sha512-2wo4EXgxOGSFueqvHAdnmi5JLZzWqMArjuP4nqC26AtLh5PoCPsaRbRdah2xhcwTAMooZfjYiNVNkkmmSMaxOQ=="
},
"socket.io-client": {
"version": "3.0.0-rc3",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.0-rc3.tgz",
"integrity": "sha512-9w67FZtTsGlDiwpobQ0l1UeLinx6LuFYEHGTcFRc5P5PyY/4M6ZI7nBFxIhjf0l8DTUfAJwllqzNxSqMW5nxhw==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.1.tgz",
"integrity": "sha512-iIzWRDrF/h3KPtHjvLt5LL/1n7Euvv35zVa1r10ScRjVw40yc8DxFj7GnKrj1RNYkbtveWOwEsy2lWp3oFJO7w==",
"requires": {
"@types/component-emitter": "^1.2.10",
"backo2": "1.0.2",
@@ -201,13 +201,13 @@
"debug": "~4.1.0",
"engine.io-client": "~4.0.0",
"parseuri": "0.0.6",
"socket.io-parser": "4.0.1-rc3"
"socket.io-parser": "~4.0.1"
}
},
"socket.io-parser": {
"version": "4.0.1-rc3",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.1-rc3.tgz",
"integrity": "sha512-H85dvTVUOBMzquX5AojQvxRPCvH7jMkrhp2la+2gYn/uiS20sK1U8osWCMwU00oUITDUkjDTxLjw0fGkDTA76w==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.1.tgz",
"integrity": "sha512-5JfNykYptCwU2lkOI0ieoePWm+6stEhkZ2UnLDjqnE1YEjUlXXLd1lpxPZ+g+h3rtaytwWkWrLQCaJULlGqjOg==",
"requires": {
"component-emitter": "~1.3.0",
"debug": "~4.1.0"
@@ -239,15 +239,20 @@
"yn": "3.1.1"
}
},
"typescript": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz",
"integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ=="
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"ws": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
"integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA=="
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz",
"integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ=="
},
"xmlhttprequest-ssl": {
"version": "1.5.5",

View File

@@ -1,17 +1,19 @@
{
"name": "typescript",
"name": "typescript-example",
"version": "1.0.0",
"description": "An example with TypeScript",
"private": true,
"scripts": {
"build": "tsc",
"start:server": "ts-node server.ts",
"start:client": "ts-node client.ts"
},
"author": "Damien Arrachequesne",
"license": "MIT",
"dependencies": {
"socket.io": "beta",
"socket.io-client": "beta",
"ts-node": "^9.0.0"
"socket.io": "^3.0.1",
"socket.io-client": "^3.0.1",
"ts-node": "^9.0.0",
"typescript": "^4.0.5"
}
}

View File

@@ -0,0 +1,9 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es5"
},
"exclude": [
"node_modules"
]
}

View File

@@ -169,6 +169,7 @@ export class Server extends EventEmitter {
> = new Map();
private _adapter: any;
private _serveClient: boolean;
private opts: Partial<EngineOptions>;
private eio;
private engine;
private _path: string;
@@ -203,7 +204,8 @@ export class Server extends EventEmitter {
this.encoder = new this._parser.Encoder();
this.adapter(opts.adapter || Adapter);
this.sockets = this.of("/");
if (srv) this.attach(srv, opts);
this.opts = opts;
if (srv) this.attach(srv);
}
/**
@@ -357,6 +359,8 @@ export class Server extends EventEmitter {
srv.listen(port);
}
// merge the options passed to the Socket.IO server
Object.assign(opts, this.opts);
// set engine.io path to `/socket.io`
opts.path = opts.path || this._path;

3596
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "socket.io",
"version": "3.0.1",
"version": "3.0.4",
"description": "node.js realtime framework server",
"keywords": [
"realtime",
@@ -29,12 +29,16 @@
"url": "git://github.com/socketio/socket.io"
},
"scripts": {
"test": "npm run format:check && tsc && nyc mocha --require ts-node/register --reporter spec --slow 200 --bail --timeout 10000 test/socket.io.ts",
"format:check": "prettier --check 'lib/**/*.ts' 'test/**/*.ts'",
"format:fix": "prettier --write 'lib/**/*.ts' 'test/**/*.ts'",
"prepack": "tsc"
"compile": "rimraf ./dist && tsc",
"test": "npm run format:check && npm run compile && nyc mocha --require ts-node/register --reporter spec --slow 200 --bail --timeout 10000 test/socket.io.ts",
"format:check": "prettier --check \"lib/**/*.ts\" \"test/**/*.ts\"",
"format:fix": "prettier --write \"lib/**/*.ts\" \"test/**/*.ts\"",
"prepack": "npm run compile"
},
"dependencies": {
"@types/cookie": "^0.4.0",
"@types/cors": "^2.8.8",
"@types/node": "^14.14.7",
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"debug": "~4.1.0",
@@ -43,18 +47,16 @@
"socket.io-parser": "~4.0.1"
},
"devDependencies": {
"@types/cookie": "^0.4.0",
"@types/cors": "^2.8.7",
"@types/mocha": "^8.0.3",
"@types/node": "^14.11.2",
"babel-eslint": "^10.1.0",
"eslint": "^7.9.0",
"eslint-config-prettier": "^6.11.0",
"expect.js": "0.3.1",
"mocha": "^3.5.3",
"nyc": "^11.2.1",
"nyc": "^15.1.0",
"prettier": "^1.19.1",
"socket.io-client": "3.0.0",
"rimraf": "^3.0.2",
"socket.io-client": "3.0.4",
"superagent": "^3.8.2",
"supertest": "^3.0.0",
"ts-node": "^9.0.0",

View File

@@ -26,7 +26,7 @@ function client(srv, nsp?: string | object, opts?: object) {
}
describe("socket.io", () => {
it.skip("should be the same version as client", () => {
it("should be the same version as client", () => {
const version = require("../package").version;
expect(version).to.be(require("socket.io-client/package.json").version);
});
@@ -138,6 +138,24 @@ describe("socket.io", () => {
done();
});
});
it("should work with #attach (and merge options)", () => {
const srv = createServer((req, res) => {
res.writeHead(404);
res.end();
});
const server = new Server({
pingTimeout: 6000
});
server.attach(srv, {
pingInterval: 24000
});
// @ts-ignore
expect(server.eio.opts.pingTimeout).to.eql(6000);
// @ts-ignore
expect(server.eio.opts.pingInterval).to.eql(24000);
server.close();
});
});
describe("port", () => {