Changelog

1.4.0

  • Add timeout option to set a minimum transport timeout. Fixes #403

  • Update dev deps to fix security warnings from npm audit

  • Guard against null this._transport in debug statement. Fixes #448

1.3.0

  • Revert debug to ^3 because v4 starts using ES6. Fixes #457

1.2.0

  • Update all outdated dependencies

  • Switch to karma and browserstack for running automated browser tests

1.1.5

  • Wrap the the contentWindow access in a try/catch block when in setTimeout #363

  • Revised example in README #356

  • Fix connection close when Transport timeout #358

  • Fixed crash with react-native@0.45.1 on Android #386

  • Update jsDelivr link #404, #405

  • Remove Sauce Labs unsupported browsers

  • Add link to rust server implementation #411

  • location.protocol should include final : #396

1.1.4

  • Upgrade debug and fix object key literal mangling, fixes regression in Opera 11.10 #359

  • Trim descriptions in package.json and bower.json - #372

1.1.3

  • Bad publish to NPM (removed)

1.1.2

  • Ensure both sender and receiver are cleaned upon close - #342

  • Remove event listeners before calling close - #344

  • Update documentation links - #351, #339, #316

  • Explicitly export undefined when WebSocket does not exist. Fixes Webpack. #321

  • Include dist folder on npm - #265

  • Simplify build setup

  • Update to Node.js 6.9

  • Add sourcemap for minified version

  • Remove unused String.trim shim

1.1.1

  • Do not pass protocols or options arguments to browser WebSocket constructor - #309

1.1.0

  • Fix IE7/8 usage of console.log which does not have apply - #279

  • Remove dbg global variable - #282

  • Bump faye-websocket version to 0.11.0 - #267

  • Optimize arguments usage - #263

  • Add sourcemap file to dist folder - #237

  • Add way to transparently pass transport-specific options - #272

1.0.3

  • Use https module for xhr requests in node when url uses https - #254

1.0.2

  • Fix iframe info receiver url

  • Move iframe.contentWindow check inside setTimeout - #246

1.0.1

  • Use proper base url for iframe-based info receiver - #249

  • Don't register unload event in chrome packaged app - #223

  • Allow custom session ids - #250

  • Remove version property from bower.json - #247

  • Update example CDN url - #244

1.0.0

  • Simplify url handling by delegating to url-parse - #242

  • Upgrade to url-parse 1.0.1 to fix colon issue if auth has no password

1.0.0-beta.13

  • Transport timeout on connection should fallback - #238

1.0.0-beta.12

  • Upgrade url-parse to 1.0.0 to fix #218 again

1.0.0-beta.10

  • Upgrade url-parse to 0.2.3 to fix #222

1.0.0-beta.9

  • Upgrade url-parse to 0.2.1 to fix 'too much recursion' errors

1.0.0-beta.8

  • Upgrade url-parse to 0.2.0 to fix inheritance issues

1.0.0-beta.7

  • Upgrade url-parse to 0.1.5 to fix #218

  • Don't strip basic auth from url - #219

1.0.0-beta.6

  • Upgrade url-parse to 0.1.3 to avoid CSP issues

1.0.0-beta.5

  • Upgrade url-parse to 0.1.1 to fix #214

1.0.0-beta.4

  • Upgrade url-parse to 0.1.0 and sockjs to 0.3.11

  • Update .npmignore

1.0.0-beta.3

  • Move debug from devDependencies to dependencies

1.0.0-beta.2

  • Relax requirements when using same origin XHR - #80

  • Upgrade to JSON3 from JSON2 - #123

  • Package library with browserify supporting the UMD pattern - #184

  • Move tests to JavaScript

  • Add Gulp.js build script

  • Fix getOrigin for file:/// urls and standard ports - #173

  • Add onerror event handlers to Websockets - #169

  • Increase RTO lower bound to prevent spurious timeouts on IE8/9 - #161

  • Use window.crypto for random values when available - #128

  • Fix handling of listeners added and removed mid-dispatch - #127

  • Fix XHR Streaming for IE8 - #83

  • Remove explicit AMD name - #107

  • Check for an empty response from /info request - #143

  • Add Content-Type to XHR requests to fix issue over HTTPS on Galaxy S4 - #164

  • Fix iframe fallback when message is sent from a popup in IE7/8 - #166

  • Add support for query strings on the url - #72

  • Now works inside of Web Workers - #181

  • Support EventSource / Server Sent Events outside of iframes - #201

  • Rename protocols to transports - #65

  • Allow transports which need the body to trigger on 'interactive' readyState - #175

  • try/catch access to document.domain - #187

  • Use window.location instead of document.location - #195

  • Allow usage from node.js with same API

0.3.4

  • Mentioned njoyce's fork of sockjs-gevent.

  • #90 - Don't catch onbeforeunload event - it breaks javascript:// links in IE.

  • IE mangles 204 response code for 1223 on ajax, see: http://bugs.jquery.com/ticket/1450

  • Make new optional for SockJS constructor (via substack).

  • It is impossible to cancel JSONP polling request - compensate for that.

  • Refactored EventEmitter prototype (used only internally)

  • #66 - Failure to post data to /xhr_send should kill the session

0.3.2

  • #77 - Getting /info on modern browsers when html is served from file:// urls was broken.

0.3.1

  • #61 - Meteor guys found that we unintentionally catch "onopen" errors.

  • #63 - Meteorjs guys found that xhr-streaming on Safari sometimes left busy cursor running.

  • Increased allowed time for websocket transport (from 1 rtt to 2), this should make ws transport more reliable over SSL, at the cost of slightly longer connection time for users with blocked ws.

  • #57 - previous fix didn't really work, sockjs-client still left a mess in browsers history when using iframe transports. This is fixed now.

  • #60 - Opera 12 (next) claims to do AJAX2 / CORS, but can't do xhr-streaming.

  • #58 - onunload test sometimes failed on Safari on windows

  • Updated readme WRT websocket protocols

  • Updated readme WRT deployments on heroku

  • Add minimalistic license block to every source file.

0.3.0

  • Temporarily disabled iframe tests - they are failing unpredictably.

  • #57 - pointing an iframe to "about:blank" during cleanup caused Opera to messup history.

  • #55 - Improved iframe abstraction (reduced a possible mem leak)

  • Refactored AJAX abstractions, for better CORS handing - again.

  • Add additional parent origin security check to an iframe.

  • Urls with hashes or query strings can't be passed to SockJS.

  • #18 - Mention workaround for Firefox ESC key issue

  • #53 - AMD compliance

  • sockjs/sockjs-protocol#28 - always use square brackets for websocket frames

  • #51 - initial support for IE10 - try XHR before XDR

  • #28 - handle onunload / onbeforeunload in a more robust fashion

  • #49 - support SockJS-client being used from files served from file:// urls.

0.2.1

  • "smoke-latency.html" test was unnecesairly sending too much data.

  • Bumped core dependencies (coffee-script and uglify-js)

  • Minor updates to the README, few cosmetic changes in the code.

0.2.0

  • The API had changed - use protocols_whitelist option instead of passing an array of protocols as a second argument to SockJS constructor.

  • Dropped 'chunking-test' functionality and replace it with 'info'.

  • Rewritten protocol-choosing alogirthm, see "utils.detectProtocols" method.

  • Use dynamic protocol timeouts based on RTT, not hardcoded 5 seconds

  • #34 - Don't ever reuse session_id, especially when trying fallback protocols.

  • The test server got moved from SockJS-client to SockJS-node.

  • Don't test unicode surrogates - it can't work in some environments.

  • XHR/XDR helpers were rewritten, ajax transports were simplified.

  • Added a domain check in the iframe to improve security.

  • SockJS will now trigger 1002 error if there is a problem during handshake instead of 2000 error.

  • Smoke-throughput test is renamed to smoke-latency.

0.1.2

  • #29 - Allow all unicode characters to be send over SockJS.

  • #15 - SockJS should now work fine even if the connection is started in HEAD, before BODY is loaded.

  • #28 - In rare circumstances WebSocket connection can be left intact after the page is unloaded in FireFox.

  • Updated scripts to work with Node 0.6.

  • Initial work to do better QUnit testing.

  • Updated the minifying script (always escape unicode chars, remove trailing comment).

  • Use string instead of array of chars (utils.js:random_number_string).

0.1.1

  • #21 Get JsonP transport working on IE9 (Vladimir Dronnikov).

  • #26 Emit heartbeat event.

  • #27 Include license inline.

0.1.0

  • SockJS-client can only send UTF-8 encodable strings. Previously we took advantage of rich data structures and automatically json-encoded them, but this got removed. Now, all data passed to send will be converted to string. This is also how native

  • status property on EventClose is renamed to code as per Websocket API WebSockets behave.

  • The test server was updated to new sockjs-node API

  • Fixed problem with Jsonp-polling transport on IE9

  • Repository was moved - updated links.

0.0.4

  • All transports were refactored, some transports were introduced: htmlfile and separate xhr-streaming.

  • Added logic to detect support for http chunking, and thus a possibility to rule out streaming transports before running them.

  • Added 'cookie' option, useful for cookie-based load balancing (currently, it make a difference only for IE).

  • Added hack to prevent EventSource from crashing Safari and Chrome.

  • Loads and loads of other small and medium changes.

0.0.2

  • Initial support for JSESSIONID based load balancing. Currently doesn't play nicely with IE XDomainRequest transport.

0.0.1

  • Initial release.

Last updated