WebSync 3 Release Notes
- Fixed access exception when string formatting on the iOS simulator.
- Added 64-bit slice to iOS libraries.
- 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 WebSync On-Demand default URL to v3.websync.fm (previously sync3.frozenmountain.com).
- Updated binding so re-binding overwrites instead of throwing an exception.
- Added threadsPerCPU web.config setting.
- Added periodic metrics to DEBUG log output.
- Added stability improvements to SQL sticky provider.
- Added lastClientId to client/server to support automatic disconnection after recycling.
- 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.
- Updated message deserialization to handle single-string subscriptions for third-party Bayeux compatibility.
- Added armv7s support to iOS library and removed armv6 support.
- 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 the sticky SQL provider's handling of dead servers.
- Updated SQL queries to improve locking performance and avoid deadlocks.
- Updated log4net to latest version 184.108.40.206.
- Fixed bug in SQL idle disconnect query.
- 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).
- Fixed bug where standalone publishing applications using the RequestHandler would register to receive messages.
- 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.
- 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.
- 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.
- 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.
- Added Java client, publisher, examples and documentation.
- 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.
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.
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.
- 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.
- Added iOS client for iPhone and iPad applications.
- Added gzip support for .NET client/publisher.
- 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.
- 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 escaped special characters in a channel name would not be accepted.
- Fixed bug where SQL table accesses required the dbo schema.
- Fixed bug where sending falsey values in XHR utility would send nothing at all.
- Fixed bug where a reconnect after network failure with meta set in the original connect call would alert an error.
- 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 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.
- 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 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 a few spelling errors and discrepancies in the documentation.
- Fixed IE-specific bug that could cause failure to reconnect after a server reset or network outage.
- 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 StatelessProvider API to take more descriptive ClientRecord parameter for ConnectClient method implementation.
- Fixed bug in server that allowed disconnected clients to publish messages.
- Added targetedScan option for WebSync initialization to reduce initial load time and memory consumption.
- Added performance tuning scripts for machines hosting WebSync Server.
- 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 Subscribers extension whereby network failures would trigger a subscribe onFailure event.
- 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.
- Fixed bug whereby some POST-capable browsers would use GET under certain conditions.
- Initial v3 release. *