Repository navigation
Note
iOS WebSockets now use Network.framework by default(~30% faster). App Transport Security and NSPinnedDomains pinning don't apply to it, so ws:// connects to any host and pinned certificates aren't checked. Proxies and HTTP authentication aren't supported either. If your app needs any of these, set NitroWebSocketsUseNetworkFramework to false in Info.plist to switch back to NSURLSessionWebSocketTask:
What's Changed
- fix: avoid trapping on non-finite prefetch TTLs and disable hits for TTL <= 0 by @huytdps13400 in #244
- perf: skip body resolution awaits that cannot apply by @riteshshukla04 in #252
- perf(websockets): keep the Android service thread attached to the JVM by @riteshshukla04 in #253
- perf(websockets): reserve the whole frame before reassembling it on Android by @riteshshukla04 in #254
- fix(websockets): deliver close and error events that fire before handlers are set by @riteshshukla04 in #261
- fix(websockets): accept handshake responses with large headers on Android by @riteshshukla04 in #264
- fix(websockets): close a prewarmed connection when a new prewarm replaces it by @riteshshukla04 in #266
- fix(websockets): follow up to 20 redirects on Android by @riteshshukla04 in #268
- fix(websockets): follow relative redirects on Android by @riteshshukla04 in #262
- fix(websockets): drop Authorization on cross-origin redirects on Android by @riteshshukla04 in #267
- fix(websockets): read the whole redirect Location on Android by @riteshshukla04 in #270
- fix(websockets): end a redirect that is not followed exactly once on Android by @riteshshukla04 in #271
- fix(websockets): drop the rest of a message that exceeds the size limit on Android by @riteshshukla04 in #272
- fix(websockets): start a new connection when connect() is called again by @riteshshukla04 in #265
- perf(android): read response bodies in 64 KB chunks by @riteshshukla04 in #249
- perf(android): decode UTF-8 response bodies without ICU by @riteshshukla04 in #248
- fix(websockets): parse WebSocket URLs fully on Android by @riteshshukla04 in #263
- perf(websockets): hand reassembled messages to JS without copying them by @riteshshukla04 in #256
- perf(android): resolve each Content-Type's charset once by @riteshshukla04 in #250
- perf(android): accumulate response bodies in one presized buffer by @riteshshukla04 in #247
- perf(android): run Cronet's read loop on its network thread by @riteshshukla04 in #245
- test: give the too-many-redirects test 30 s by @riteshshukla04 in #276
- fix: throw for redirect: 'error' only on an actual redirect by @riteshshukla04 in #281
- fix(android): drop finished requests that were registered late by @riteshshukla04 in #275
- fix(ios): drop finished requests that were registered late by @riteshshukla04 in #279
- perf(android): validate multi-byte UTF-8 with fewer branches by @riteshshukla04 in #278
- fix(android): read a quoted charset parameter by @riteshshukla04 in #280
- test: cover response bodies in the harness by @riteshshukla04 in #274
- fix(ios): reject streamed requests with an unparseable URL instead of crashing by @pioner92 in #269
- fix(android): fail at once when custom headers don't fit the handshake by @riteshshukla04 in #284
- fix(websockets): don't lose or reorder messages that race a handler on iOS by @riteshshukla04 in #277
- fix(websockets): don't fire open or error after close() on iOS by @riteshshukla04 in #283
- fix(websockets): copy a reassembled message whose buffer is much larger than it by @riteshshukla04 in #273
- fix(android): reject an unparseable URL with "Invalid URL" like iOS by @riteshshukla04 in #285
- fix(android): fire onclose when the close frame can't be sent by @riteshshukla04 in #282
- feat: stream the response body into a native buffer (nativeBuffer option) by @riteshshukla04 in #286
- perf(websockets): use a Network.framework transport on iOS by @riteshshukla04 in #260
- feat: optional certificate pinning for Android and iOS by @riteshshukla04 in #287
- fix: build the Expo config plugins when packing by @riteshshukla04 in #290
- docs: fix the Swift prefetch example, WebSocket replacement and iOS streaming notes by @riteshshukla04 in #292
- fix(ios): don't write subprotocols containing CR/LF into the WebSocket handshake by @riteshshukla04 in #291
Full Changelog: v1.8.0...v1.9.0