Commit Graph

1495 Commits

Author SHA1 Message Date
Damien Arrachequesne
4873a237f1 fix: restore the cherry-picking of the WebSocket options
The previous commit ([1]) makes the Engine.IO tests with Node.js SSL
options fail.

[1]: 177b95fe46
2020-11-17 11:15:53 +01:00
Damien Arrachequesne
8228a43335 chore(release): 4.0.3
Diff: https://github.com/socketio/engine.io-client/compare/4.0.2...4.0.3
2020-11-17 09:25:41 +01:00
Damien Arrachequesne
89cb771cf0 refactor: remove binary handling for the polling transport (bis)
The `supportsBinary` attribute and the `forceBase64` option are kept
untouched, though they are not used by the polling transport, which
now always converts the payloads to base64.

Related: https://github.com/socketio/socket.io-client/issues/1391
2020-11-17 09:19:28 +01:00
Damien Arrachequesne
177b95fe46 fix(react-native): exclude the localAddress option
React Native only supports the "headers" option in the WebSocket constructor.

Related: https://github.com/socketio/socket.io-client/issues/1397
2020-11-16 23:17:21 +01:00
Damien Arrachequesne
ccb99e3718 fix(react-native): add a default value for the withCredentials option
The undefined value breaks React Native on Android with a rather cryptic error message:

```
Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue() on a null object reference
```

This bug was introduced by [1].

[1]: 5f47a50ee5

Related: https://github.com/socketio/socket.io-client/issues/1403
2020-11-16 23:17:21 +01:00
Damien Arrachequesne
82987d5efb chore: bump engine.io version 2020-11-09 10:12:02 +01:00
Damien Arrachequesne
b6df250c5c chore(release): 4.0.2
Diff: https://github.com/socketio/engine.io-client/compare/4.0.1...4.0.2
2020-11-09 10:03:19 +01:00
Damien Arrachequesne
ec3f677e92 refactor: remove binary handling for the polling transport
Since Engine.IO v4, the binary payloads are always encoded as base64
with the polling transport.

See https://github.com/socketio/engine.io-protocol#difference-between-v3-and-v4

Possibly related: https://github.com/socketio/socket.io-client/issues/1391
2020-11-08 02:12:11 +01:00
Damien Arrachequesne
17649168d3 chore: bump engine.io 2020-10-22 00:38:13 +02:00
Damien Arrachequesne
276597f92d chore(release): 4.0.1
Diff: https://github.com/socketio/engine.io-client/compare/4.0.0...4.0.1
2020-10-22 00:31:35 +02:00
dependabot[bot]
a54e417bb7 chore: bump elliptic from 6.5.2 to 6.5.3 (#641)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-22 00:01:34 +02:00
Damien Arrachequesne
6d3d83687c chore: bump parseuri version (#642)
parseuri now lists better-assert as devDependency.

Source: https://github.com/galkn/parseuri
2020-10-21 23:36:42 +02:00
dependabot[bot]
45670a14f0 chore: bump js-yaml from 3.4.5 to 3.14.0 (#640)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.4.5 to 3.14.0.
- [Release notes](https://github.com/nodeca/js-yaml/releases)
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.4.5...3.14.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-30 23:41:37 +02:00
Damien Arrachequesne
0ba4615822 docs(changelog): include changelog for release 3.4.4
Merged from the 3.4.x branch.
2020-09-30 02:32:48 +02:00
Damien Arrachequesne
bc9d6c1669 refactor: fix typo
Closes https://github.com/socketio/socket.io-client/pull/1354
2020-09-30 01:46:50 +02:00
Damien Arrachequesne
2ea0d13094 chore(release): 4.0.0
Diff: https://github.com/socketio/engine.io-client/compare/v4.0.0-alpha.1...4.0.0
Full diff: https://github.com/socketio/engine.io-client/compare/3.4.0...4.0.0
2020-09-11 01:01:49 +02:00
Damien Arrachequesne
4683a954d4 chore: provide a development bundle
Two bundles will now be created:

- one for development, with debug and unminified: dist/engine.io.js
- one for production, without debug and minified: dist/engine.io.min.js
2020-09-10 15:17:53 +02:00
Damien Arrachequesne
f7ba966e53 feat: strip debug from the browser bundle
Striping the debug module (both imports and method calls) helps
reduce the bundle size from 41 to 33 KB.

Note: while removing debug from the source code is not desirable, it
might be interesting to provide the library without debug included, so
that users don't have to use something like webpack-remove-debug when
bundling the library.
2020-09-09 01:53:22 +02:00
Damien Arrachequesne
ab3de6ab53 test: add Node.js 14 in the test matrix
Reference: https://github.com/nodejs/Release
2020-09-09 01:36:13 +02:00
Damien Arrachequesne
8440a57f76 chore: bump engine.io-parser version
See also: https://github.com/socketio/engine.io-protocol#difference-between-v3-and-v4

Release: https://github.com/socketio/engine.io-parser/releases/tag/4.0.0
Diff: https://github.com/socketio/engine.io-parser/compare/2.2.0...4.0.0
2020-09-09 00:02:24 +02:00
Gal Koren
cabb78d666 chore: bump parseqs version (#639)
Release notes: https://github.com/galkn/querystring/releases/tag/v0.0.6
2020-09-08 01:54:50 +02:00
Damien Arrachequesne
a5e76bc011 docs: add example with extraHeaders in the browser 2020-06-04 10:20:42 +02:00
Damien Arrachequesne
dac76f249b docs: use ES6 syntax for the code examples 2020-06-04 10:09:22 +02:00
Damien Arrachequesne
d5d81a7c75 chore: bump component-emitter dependency
Subscribing/unsubscribing for a lot of different event types could lead
to a memory leak.

See aa2e57acc7

Diff: https://github.com/component/emitter/compare/1.2.1...1.3.0
2020-06-04 08:12:10 +02:00
Damien Arrachequesne
f3a48329e7 test: restore tests on all browsers
iphone / ipad / edge were excluded in [1], though there is no clear
explanation.

[1] 28765c5430
2020-06-04 07:43:47 +02:00
Damien Arrachequesne
2f5c948abe fix(react-native): restrict the list of options for the WebSocket object
Only 'headers' and 'localAddress' options are supported by the
WebSocket implementation in React Native.

The following message was printed to the console:

> Unrecognized WebSocket connection option(s) `agent`, `perMessageDeflate`, `pfx`, `key`, `passphrase`, `cert`, `ca`, `ciphers`, `rejectUnauthorized`. Did you mean to put these under `headers`?

Reference: https://reactnative.dev/docs/network.html#websocket-support
2020-05-25 07:34:17 +02:00
Damien Arrachequesne
86d4e8d4da docs(changelog): include changelog for release 3.4.1
Merged from the 3.4.x branch.
2020-04-17 15:08:17 +02:00
Damien Arrachequesne
3f3a6f9914 fix: use globalThis polyfill instead of self/global (#634)
In order to fix the "self is not defined" issues in Android 8 and React
Native.

Fixes https://github.com/socketio/engine.io-client/issues/611, https://github.com/socketio/engine.io-client/issues/626
Closes https://github.com/socketio/engine.io-client/pull/627
2020-04-16 16:08:37 +02:00
Chris West (Faux)
27fa6949f3 refactor: remove indexof dependency
This is a polyfill for indexOf(), which we use literally everywhere else.
2020-04-16 10:06:44 +02:00
Damien Arrachequesne
804e871d4a chore(release): 4.0.0-alpha.1 2020-02-12 08:26:52 +01:00
Damien Arrachequesne
7c7f1a9fe2 fix: properly assign options when creating the transport
The query attribute was overwritten, due to the order of arguments in
the assignment. The bug was introduced in the refactor (5f47a50).
2020-02-12 08:14:51 +01:00
Damien Arrachequesne
d37534e052 chore(release): 4.0.0-alpha.0 2020-02-12 07:45:56 +01:00
Damien Arrachequesne
5f47a50ee5 refactor: refactor the handling of the options 2020-02-11 23:33:34 +01:00
Damien Arrachequesne
41a1bcf1f5 chore: bump ws dependency
Diff: https://github.com/websockets/ws/compare/6.1.0...7.2.1
2020-02-11 23:17:43 +01:00
Damien Arrachequesne
4d311495af test: add Node.js 12 and 13 in the test matrix 2020-02-11 08:05:58 +01:00
Damien Arrachequesne
81d7171c6b feat: reverse the ping-pong mechanism
The ping packets will now be sent by the server, because the timers set
in the browsers are not reliable enough. We suspect that a lot of
timeout problems came from timers being delayed on the client-side.

Breaking change: v3.x clients will not be able to connect anymore (they
will send a ping packet and timeout while waiting for a pong packet).

Related: https://github.com/socketio/engine.io/issues/312
2020-02-04 12:29:37 +01:00
Damien Arrachequesne
581cefff2d refactor: remove gulp from the build
Plain npm scripts should be sufficient for our use case.
2020-01-15 08:46:15 +01:00
Damien Arrachequesne
eb88094a0e chore: point towards the v4 branch 2020-01-14 23:02:25 +01:00
Damien Arrachequesne
08aff9487f refactor: use prettier to format code 2020-01-14 22:58:35 +01:00
Damien Arrachequesne
0fcc5417ac refactor: migrate to ES6 syntax 2020-01-10 07:29:26 +01:00
Damien Arrachequesne
11dc4f3a56 chore: migrate to webpack 4
Breaking change: the output bundle will now be found in the dist/ folder.
2020-01-10 07:27:02 +01:00
Damien Arrachequesne
ccc9337497 [chore] Release 3.4.0
Diff: https://github.com/socketio/engine.io-client/compare/3.3.2...3.4.0
2019-09-13 13:57:12 +02:00
Damien Arrachequesne
1e29b0c984 [chore] Bump engine.io-parser to version 2.2.0
Diff: https://github.com/socketio/engine.io-parser/compare/2.1.3...2.2.0
2019-09-13 13:48:19 +02:00
Damien Arrachequesne
e8cd8c0d6c build: transpile the debug dependency with Babel
a967626a1d has broken
the build for IE and android 5.1

Related: https://github.com/visionmedia/debug/issues/668
2019-09-13 13:36:33 +02:00
Christopher
fd7fff252d [fix] Ensure valid status is passed to error handler (#622)
Closes https://github.com/socketio/engine.io-client/issues/621
2019-09-13 11:59:51 +02:00
Nubami SQReder
226626921d [feat] Support extra charset info in Content-Type header (#619)
XHR Polling failed to make handshake with server that adds charset info into Content-Type header.

Closes https://github.com/socketio/engine.io-client/issues/618
2019-09-13 11:58:24 +02:00
Jake Barnes
2847411dd0 [feat] Add withCredentials option (#614)
withCredentials was always set to true, despite the browser default being false, and can now be overridden.

Closes https://github.com/socketio/engine.io-client/issues/495
2019-09-13 11:56:36 +02:00
Szymon Lesisz
0eeaa7a927 [fix] fix NodeWebSocket declaration (#613)
NodeWebSocket was be required ONLY if global variables self and WebSocket were not defined.

Closes https://github.com/socketio/engine.io-client/issues/609
2019-09-13 11:53:59 +02:00
Dimitar Nestorov
242ea9edea [chore] Bump debug to version 4.1.0 (#612) 2019-09-13 11:52:16 +02:00
Damien Arrachequesne
bc8c4978ca [ci] use Node.js 10 for compatibility with Gulp v3
It seems Node.js 12 (which is now 'latest') does not work with Gulp v3. In the future, we will
either have to migrate to Gulp v4, or remove Gulp from the build system.

See https://github.com/gulpjs/gulp/issues/2324
2019-09-13 11:34:45 +02:00