WebSync 3 Release Notes

3.5.1.5

  • Fixed access exception when string formatting on the iOS simulator.

3.5.1.4

  • Added 64-bit slice to iOS libraries.

3.5.1.3

  • Added null-check when deserializing JSON extension values.
  • Added additional error handling to assembly scanner to guard against bad references.
  • Improved server-side JS caching performance.
  • Updated JavaScript cookie storage/retrieval so special characters (like commas) are encoded/decoded.
  • Updated WebSync On-Demand default URL to v3.websync.fm (previously sync3.frozenmountain.com).
  • Updated binding so re-binding overwrites instead of throwing an exception.

3.5.1.2

  • Added threadsPerCPU web.config setting.
  • Added periodic metrics to DEBUG log output.

3.5.1.1

  • Added stability improvements to SQL sticky provider.

3.5.1.0

  • Added lastClientId to client/server to support automatic disconnection after recycling.
  • Added cookie extension to JavaScript to support automatic disconnection after page refresh/navigation.
  • Fixed bug where client-side after-connect event would not fire in JavaScript.
  • Updated subscribers extension (server component) to only send subscribers if a subscribers callback was registered.
  • Updated event arguments so client details are modified appropriately in the AfterSubscribe/Unsubscribe/Bind/Unbind events.

3.5.0.13

  • Updated message deserialization to handle single-string subscriptions for third-party Bayeux compatibility.

3.5.0.12

  • Fixed bug in JavaScript cache buster for IE8.

3.5.0.11

  • Added armv7s support to iOS library and removed armv6 support.
  • Added cache buster to all JavaScript client requests.

3.5.0.10

  • Updated JavaScript client to fire OnFailure when connecting to a server that failed to initialize properly.

3.5.0.9

  • Added forced unbind when disconnecting (both manual and automatic).
  • Added null check to BayeuxMetaChannels.IsMeta to avoid certain deserialization exceptions with mal-formatted data.
  • Updated JSON-P and postMessage JavaScript transport protocols to fix memory leaks in some browsers.
  • Updated the sticky SQL provider's handling of dead servers.

3.5.0.8

  • Updated SQL queries to improve locking performance and avoid deadlocks.
  • Updated log4net to latest version 1.2.11.0.

3.5.0.7

  • Fixed bug in SQL idle disconnect query.

3.5.0.6

  • Fixed bug where IE could throw a c00c023f error if hard-disconnecting the network (i.e. by pulling the network plug).
  • Fixed bug where the server might not detect the presence of a RequestHandler and subsequently not initialize a cache (characterized by object reference exceptions in the logs).

3.5.0.5

  • Fixed bug where standalone publishing applications using the RequestHandler would register to receive messages.

3.5.0.4

  • Updated server request handling to better detect improperly formatted messages.
  • Updated server application pool recycle handling to improve long-term stability and message delivery.
  • Fixed bug where processes running WebSync outside IIS without a bounded thread pool could attempt IPC communication.
  • Fixed bug where HttpWebRequestTransfer could exhibit unusual behaviour in a timeout race condition.
  • Fixed bug where invalid path characters in a connection string could cause inter-process communication failure.
  • Fixed bug where thick clients might not fire OnUnhandledReceive.

3.5.0.3

  • Updated request handler to output fatal exceptions if the request manager and/or provider fails to load.
  • Fixed bug related to HTTP serialization of Asian character sets.
  • Fixed bug with Azure Table Storage provider initialization and default DateTime values.

3.5.0.2

  • Added additional SQL safety measures to ensure dangling database client records cannot exist.
  • Fixed bug in client-side HttpWebRequest synchronous state handling for timed out requests.
  • Fixed bug in automatic mutex naming for certain SQL configurations to work around Windows naming restrictions and DirectoryNotFoundException.

3.5.0.1

  • Updated SQL commands to take advantage of XML attribute performance enhancements.
  • Updated HttpWebRequestTransfer to skip unnecessary packet transfers and optimize delivery.
  • Fixed memory leak in HttpWebRequestTransfer.

3.5.0.0

  • Added Java client, publisher, examples and documentation.
  • Added overrideable JavaScript util.getScheme() function to force the scheme for WebSync communication.
  • Added RepeatOnStreamFailures property to ClientConnectArgs.
  • Updated .NET Client to disable the Nagle algorithm and "Expect:100-continue" behaviour which improves performance.
  • Updated JSONP to provide a more meaningful error when the request length exceeds IE's URL length limit.
  • Fixed DateTime serialization bug with Silverlight client.
  • Fixed database schema update bug that caused constraint creation to fail during WebSync upgrades on busy servers.

3.4.2.0

  • Note: This update includes schema changes for the Sticky SQL Provider. If you are using the Sticky SQL Provider, follow these steps:

  • Take all nodes offline.

  • Apply the update to all nodes.
  • Turn on one node (which will apply the schema changes).
  • Verify connectivity to the one enabled node.
  • Enable the remaining nodes.
  • If you did not follow these steps and are now experiencing issues:

  • Take all nodes offline.

  • Execute this SQL script against your WebSync database.
  • Enable all nodes.
  • Changes:

  • Added interprocess serialization to streamline overlapped worker processes.

  • Updated iOS deserialization routines to significantly improve performance, especially on large messages.
  • Updated JSON parsing to use native JSON handling when available.
  • Updated Subscribers extensions to better handle cases where the subscription fails.
  • Updated idle detection to handle cases where the system time changes.
  • Updated idle disconnection for the SQL provider to better handle client migrations in multi-server environments.
  • Updated SQL provider schema/indexes to improve performance.
  • Fixed bug where a c00c023f error would show up in Internet Explorer under certain page unload conditions.
  • Fixed miscellaneous bugs in both client and server.

3.4.1.0

  • Updated error handling for IIS request failures.
  • Updated Subscribers extension client after-events to handle failed subscribe/unsubscribe requests.
  • Updated HTML5 postMessage algorithm to work around Firefox iframe caching bug.
  • Fixed indexing bug in JavaScript client.

3.4.0.0

  • Added iOS client for iPhone and iPad applications.
  • Added gzip support for .NET client/publisher.
  • Updated JavaScript client support for Internet Explorer 9.
  • Updated Azure Table provider to support Azure SDK 1.4.
  • Updated default response from request handler to empty GET requests.
  • Updated error handling for XHR aborts.
  • Updated SQL to use NOLOCK hint where possible to avoid deadlocks under heavy load.
  • Updated documentation with more code snippets and diagrams.
  • Fixed bug where string-final slashes in JSON-encoded data strings within message arrays could cause problems with deserialization.
  • Fixed bug where a combination of resubscribes and rebinds after a network failure might not be delivered in the correct order.

3.3.2.0

  • Updated clients to guarantee firing of onSuccess or onFailure after onStreamFailure with willReconnect = true.
  • Updated clients to allow an automatic reconnect in the connect onFailure callback (by setting args.reconnect = true).
  • Updated clients to only fire onStreamFailure once per stream failure.
  • Fixed bug where requests that generated pre-processing fatal error messages would not close.
  • Fixed bug where dashes in an absolute URL would cause problems in the JavaScript client.
  • Fixed bug where escaped special characters in a channel name would not be accepted.
  • Fixed bug where the sync flag in the JavaScript client would be ignored when processed through a queue.
  • Fixed bug where SQL table accesses required the dbo schema.
  • Fixed bug where sending falsey values in XHR utility would send nothing at all.

3.3.1.0

  • Fixed bug where a reconnect after network failure with meta set in the original connect call would alert an error.

3.3.0.0

  • Added support for binding and unbinding public or private data to and from clients (e.g. user name, email address).
  • Added support for batching client requests together (StartBatch/EndBatch).
  • Added support for wildcards in domains, allowing WebSync-enabled pages to be opened in multiple (unlimited) windows.
  • Added support for a large number of server-side operations to RequestHandler.
  • Added StayConnected property to client connect arguments to force automatic reconnections after network failure.
  • Added Client property to server-side event arguments, simplifying access to client details (bound data, subscribed channels, etc.).
  • Added JSON extension methods for .NET 3.5 to simplify serialization of JSON data to DataJson, MetaJson, and ValueJson properties.
  • Added .NET 2.0 versions of Subscribers/ReturnData extensions.
  • Added stateless SQL provider for SQL on Azure.
  • Added a packaged copy of the website demos to WebSync Server downloads.
  • Updated Subscribers/ReturnData extensions to .NET 3.5.
  • Updated all client callback arguments to include Timestamp, Client ID, extension data, and much more.
  • Updated documentation in the first stage of a major overhaul.
  • Updated WebSync initialization to vastly improve load time.
  • Updated Subscribers extension to include any data bound to the clients.
  • Updated proxy to automatically detect SSL configuration for WebSync On-Demand.
  • Updated all data providers to significantly improve performance and stability.
  • Fixed bug where manually disconnecting and reconnecting could resubscribe to any previously subscribed channels.
  • Fixed bug where multiple calls to reconnect in the client could interfere with each other.
  • Fixed bug where calls to disconnect in the JavaScript client could trigger a reconnection.
  • Fixed bug where automatic disconnection on page unload could trigger an error.
  • Fixed bug where channel subscriptions might fail in the Azure Table provider.
  • Fixed bug where rapidly refreshing might cause failure to connect in Internet Explorer.

3.2.0.0

  • Added automatic timeout monitoring for .NET client/publisher requests.
  • Added significant performance enhancements to WebSync server load management.
  • Added automatic app-pool recycle management to improve process shutdown/transition performance.
  • Added support for server-side modification of subscription arrays.
  • Added a stateless SQL Server provider for environments where sticky load balancing is unavailable (i.e. Azure).
  • Added RequestTimeout property to the .NET client/publisher for setting the request timeout interval.
  • Added StreamRequestTimeout property to the .NET client for setting the stream-request timeout interval.
  • Added StreamRequestUrl property to the .NET client to support streaming on a different domain.
  • Added SessionRequestHandler and SessionClientHandler to WebSync Server for applications that require access to session state.
  • Added more helpful exception handling for Silverlight failures due to cross-domain restrictions.
  • Added timestamp field to all server responses.
  • Added support for applications with session state configured using cookieless="AutoDetect" to work around MS bug.
  • Updated JavaScript client to silently ignore HTML5 postMessage cross-talk.
  • Updated initialization routines so more helpful error messages are generated during the initialization of WebSync.
  • Updated Provider API to allow for better differentiation between stateless and sticky providers.
  • Updated stateless Azure Table provider to improve performance.
  • Updated docs to work via file: protocol in IE so local installations work.
  • Updated docs to include information about tuning IIS6.
  • Fixed bug in the deserialization routine of message arrays.
  • Fixed bug in the client migration routine of the sticky SQL Server provider.
  • Fixed bug in the .NET and JavaScript clients whereby the connected flag would be "true" in the onStreamFailure event.
  • Fixed a few spelling errors and discrepancies in the documentation.

3.1.0.1

  • Fixed IE-specific bug that could cause failure to reconnect after a server reset or network outage.
  • Fixed bug in the JavaScript component of the Subscribers extension that would cause onFailure to fire twice if a subscribe call failed.

3.1.0.0

  • Added support for the .NET Compact Framework 2.0.
  • Added new static method for deserializing incoming messages/publications from an HTTP request.
  • Added new OnRequestCreated event for .NET client and publisher to allow modification of a web request before it is delivered.
  • Added automatic timeout handling for XHR/postMessage so silent network failures allow client reconnection.
  • Updated server with some minor performance enhancements.
  • Updated core serialization to better handle incorrect but salvageable JSON inputs.
  • Updated examples in downloads to synchronize serialization between .NET and JavaScript.
  • Updated StatelessProvider API to take more descriptive ClientRecord parameter for ConnectClient method implementation.
  • Fixed bug in server that allowed disconnected clients to publish messages.
  • Fixed bug in .NET/JavaScript clients whereby multi-channel subscribes would resubscribe multiple times after a network failure.

3.0.2.0

  • Added targetedScan option for WebSync initialization to reduce initial load time and memory consumption.
  • Added performance tuning scripts for machines hosting WebSync Server.
  • Added caching enhancements for JavaScript client to improve load time.
  • Added domain name sanitization to PHP Publisher "domainName" property.
  • Fixed bug in core serialization whereby some characters nested in object strings would cause failure.
  • Fixed bug in JavaScript client whereby reconnect events would not fire after a network failure.
  • Fixed bug in Subscribers extension whereby network failures would trigger a subscribe onFailure event.

3.0.1.0

  • Added extension libraries for Silverlight.
  • Added current capacity query capabilities for WebSync On-Demand.
  • Added BeforeUnsubscribe event triggers for unsubscribes forced by disconnects.
  • Added Forced property to WebSyncEventArgs to identify forced unsubscribes and idle disconnects.
  • Added SSL support to WebSync Server Community Edition.
  • Removed duplicate ExtensionAttribute definition in core extensions libraries to avoid problems with projects compiled for .NET 3.5 and higher.
  • Fixed bug whereby WebSyncEvent/WebSyncScriptModifier-decorated methods in some partial classes would fire twice.

3.0.0.1

  • Fixed bug whereby some POST-capable browsers would use GET under certain conditions.

3.0.0.0

  • Initial v3 release. *