Kaazing WebSocket Gateway |
|
Release Notes |
|
|
This document describes what's new and certified in the Kaazing WebSocket Gateway 9.06 release. It contains the following sections:
- Patch Release Changes
- New Features in this Release
- Browser Certification
- Client Library Technologies
- API Changes
- Namespace Changes
- Known Issues
Patch Release Changes
This section lists the changes that were made in the Kaazing WebSocket Gateway 9.06 patch releases.
Patch Release 9.06_23
The following known issues were identified in patch release 9.06_23:
- (KG-1424) and (KG-1333) Added the ability to decode the new RabbitMQ fieldTable type to ensure that RabbitMQ release 2.4.0 and later works with Kaazing WebSocket Gateway.
- (KG-1650) Updated the certificate store to consume new CA certificates.
Patch Release 9.06_22
The following known issues were identified in patch release 9.06_22:
- (KG-1544) Reduced maximum time while processing messages before yielding to the browser using setTimeout.
- (KG-1505) In Internet Explorer 9 on Vista, WebSocket onClose event is now delivered when Gateway is shut down.
Patch Release 9.06_21
The following known issues were identified in patch release 9.06_21:
- (KG-1424) If using the RabbitMQ server with the Gateway, use RabbitMQ release 2.0.0 or earlier.
- (KG-1407 and KG-1412) When using the JavaScript client with emulated WebSocket in Firefox 4.x or higher, a bug in the Firefox add-on HttpFox (a monitoring tool) blocks messages coming from the Gateway. You may be able to work around this issue by stopping HttpFox and then connecting with the client again.
The following changes were made in patch release 9.06_21:
- (KG-1334) Added support for the .appcache mime type.
- (KG-1469) Fixed an HTTP transport issue when resolving URIs.
Patch Release 9.06_20
The following changes were made in patch release 9.06_20:
- (KG-1273) Fixed an issue where JavaScript connections did not work in Internet Explorer 9 except in compatibility mode.
- (KG-1301) Improved performance and decreased memory usage for large message volumes in Internet Explorer 8.
Patch Release 9.06_19
The following change was made in patch release 9.06_19:
- (KG-1235) Fixed an issue with resolving requests in the directory service.
Patch Release 9.06_18
The following changes were made in patch release 9.06_18:
- (KG-1090) Added a feature to the Gateway that enables the Gateway to ping the back-end service. See heartbeat.interval in Administrator's Guide for more information.
- (KG-1147) Cross-origin XmlHttpRequests now conform to the specification interpretation of Firefox 4 beta 7 (or higher).
- (KG-1122) Fixed an issue where outbound connections were not cleaned up as shown in the JConsole management console.
- (KG-1198) Improved the Gateway to make JMX ServiceMXBeanImpl process sendNotification() asynchronously.
- (KG-1205) Fixed an issue where wse connect URL for a proxy service failed when connecting to another Gateway.
Patch Release 9.06_17
The following changes were made in patch release 9.06_17:
- (KG-1126) Fixed a connection issue in Flex clients when using Google Chrome or Mozilla Firefox on Windows XP against Apache Qpid.
- (KG-1130) Fixed an issue that prevented the Stomp and AMQP Silverlight demo from connecting to the Gateway.
Patch Release 9.06_16
The following changes were made in patch release 9.06_16:
- (KG-1132) Enhanced security in the WebSocket emulation layer. To take advantage of these enhancements, you must upgrade any existing client libraries to 9.06_16.
- (KG-1059) Added a warning on Gateway startup when WebSocket URIs in the gateway-config.xml do not specify a port number. If no port number is specified, a default port number is used. For WebSocket URIs, the default port is 80; for WebSocket Secure URIs, the default port is 443.
- (KG-908) Added default port numbers for client connections to the Gateway. If no port number is specified in the client connect string, for WebSocket connections, the default port 80 is used; for WebSocket Secure connections, the default port 443 is used.
- (KG-1096) Added support for network address protocol binding. See Configuring Network Addresses in the Administrator's Guide for more information.
- Fixed an issue that causes secure connection failures (WSS or HTTPS) to the Gateway from Google Chrome (where TLS False Start is enabled).
Patch Release 9.06_15
The following change was made in patch release 9.06_15:
- Checking for SSL certificates is bypassed if encryption is disabled.
Patch Release 9.06_14
The following changes were made in patch release 9.06_14:
- Added support for SSL offloading where the Gateway returns secure URLs even when HTTPS traffic has been terminated on a separate server.
- Fixed errors encountered in the Gateway when connecting using the EncryptedKeyring.
- Improved handling of invalid or missing headers during Gateway connection.
- Support added to the gateway for draft 76 of the WebSocket protocol.
- Fixed an error that occurred upon disconnect in certain browsers.
Patch Release 9.06_13
The following changes were made in patch release 9.06_13:
- Improved the JMX bean organization and session count.
- Fixed an issue with Flash secure WebSockets throwing an exception on disconnect.
- Improved fallback support for future changes to the WebSocket protocol.
- Fixed an issue with file input stream closure in the directory service.
- Added a "Binary" mode to the STOMP demos.
Patch Release 9.06_12
The following changes were made in patch release 9.06_12:
- Fixed an issue with binary Stomp message delivery in the Microsoft Silverlight client..
Patch Release 9.06_11
The following changes were made in patch release 9.06_11:
- Addressed an issue with certificate lookup in cases where more than one host name is bound to the same port. For TLS configuration, you must ensure that the certificate entries in your keystore match all possible host names bound to a port in your configuration file GATEWAY_HOME/conf/gateway-config.xml. The recommended solution is to use a wildcard certificate or a certificate with multiple host names. Alternatively, you can use a different port for each host name, or you can ensure that each host name is bound to different IP address on the host machine.
- Added support for non-URI origin values such as null. This is required by file:// based source origin URLs.
- Updated fallback behavior to use WebSocket emulation when native WebSocket connections fail.
- Fixed an issue with intermittent delays during initial proxy service connections.
- Fixed an issue with multicast address connections.
- Fixed an issue that caused Java applets to fail in the latest versions of the JDK.
- Narrowed down the supported version of AMQP in the AMQP client libraries to version 0-9-1.
- Added detailed comments to the gateway-config.xml file to expedite configuration.
The following are known issues in patch release 9.06_11:
- Kaazing Silverlight clients do not support cross-scheme communication. For example, an http-based source origin cannot connect to an https-based target origin.
- Java version 1.6.0_14 or above is required for Microsoft .Net clients.
Patch Release 9.06_10
The following changes were made in patch release 9.06_10:
Added PostMessage bridge code to ease the integration of other web servers with Kaazing Gateway so that browsers without native support for HTML5 Cross Document Messaging (the PostMessage API) can enjoy the benefits of Cross Document Messaging, Server-Sent Events and Web Sockets. Instructions on how to use the new PostMessage bridge code can be found in the Administrator's Guide.
Note: Minor configuration changes are required when uptaking this patch to support Microsoft Internet Explorer versions 6 and 7.
- Fixed issues with multicast support, particularly behind firewalls.
- Improved support for Adobe Flex (Flash) clients that use network address mapping.
- Updated Stomp-JMS messages to no longer require IDs to pass the filter test. JMS Messages without IDs will be given placeholder IDs to comply with Stomp.
- Communication with other WebSocket servers will default to using text frames.
- Added file content type detection for upper- and mixed-case file extensions.
- Updated gateway to tolerate exceptions raised by ExternalInterface calls in environments without ExternalInterface.
- Fixed an issue with binary Stomp message delivery in Adobe Flex (Flash) and Microsoft Silverlight clients.
- Updated the Getting Started file with more information about common configuration scenarios.
Patch Release 9.06_09
The following changes were made in patch release 9.06_9:
- Added a workaround for a bug in Chrome 4.0.249.78, where echoing back the WebSocket-Location (as defined by the specification) causes the WebSocket connection to fail when the location contains a query string.
Patch Release 9.06_08
The following changes were made in patch release 9.06_8:
- Fixed an issue preventing native WebSocket from functioning in Google Chrome.
- Fixed an issue where close messages were not sent in some cases in the Silverlight WebSocket client.
- Improved emulated WebSocket performance.
Patch Release 9.06_7
The following changes were made in patch release 9.06_7:
- Improved overall performance of message delivery in the gateway.
- Improved performance in the Java desktop client.
- Added support for the WebSocket.bufferedAmount.
- Deprecated WebSocket.disconnect in favor of the new WebSocket.close API.
- Deprecated WebSocket.postMessage in favor of new WebSocket.send API.
- Fixed an issue with network address mapping support for clients using TLS.
- Enabled support for TCP_NO_DELAY by default.
- Improved JavaScript client performance in Chrome browsers.
- Improved support for PNG files served to older Internet Explorer browsers.
- Fixed JavaScript errors ("GetBufferedAmount") in Firefox 2.0 when using the Flash upgrade.
- Eliminated potential duplicate messages and events in the Java Stomp client.
Patch Release 9.06_6
The following changes were made in patch release 9.06_6:
- Prevented older Internet Explorer browsers from interpreting emulated WebSocket traffic as HTML.
Patch Release 9.06_5
The following changes were made in patch release 9.06_5:
- Improved JavaScript clients in proxy server environments.
Patch Release 9.06_4
The following changes were made in patch release 9.06_4:
- Added support for native cross-site XmlHttpRequest in Firefox 3.5 or higher.
- Updated Stomp clients to send "durable-subscriber-name" to specification-compliant.
- Improved support for proxy servers that buffer traffic.
- Fixed the handling of cross-origin XMLHttpRequest preflight messages that are rejected.
- Improved the Java desktop client to better handle buffered proxy server environments.
- Updated demos to no longer send non-null credentials when fields are empty.
- Fixed an on close exception in the Adobe Flex (Flash) AMQP client.
- Fixed a problem where requests in Internet Explorer could open new tabs.
- Updated the demo localhost certificate with new expiration date.
- Updated stock demo data source to provide better randomization.
- Removed the logging of false-negative connection errors to the gateway log file ("Broken pipe" and "Connection reset by peer").
- Upgraded the minimum version of Flash (optional for upgrade support in WebSocket emulation) to version 9.0.115 or higher.
- Added support for additional antivirus proxies that buffer content.
- Improved the reporting of bind errors at gateway startup.
- Fixed binary messages in the stomp-jms bridge.
- Prevented slow-script warnings in some edge cases in Internet Explorer.
- Prevented extra POST messages in Internet Explorer's browsing history.
- Updated WebSocket implementation to close when a stomp-jms connection is closed by the JMS server.
Patch Release 9.06_3
The following changes were made in patch release 9.06_3:
- Added a new Java desktop client for WebSocket and other protocols.
- Fixed PostMessage emulation for multiple browsers.
Patch Release 9.06_2
The following changes were made in patch release 9.06_2:
- Improved support for durable subscriptions in Stomp clients.
Patch Release 9.06_1
The following changes were made in patch release 9.06_1:
- Updated the AMQP API for Adobe Flex (Flash) clients.
- Improved EventSource emulation for Internet Explorer.
New Features in this Release
The following features are new in the Kaazing WebSocket Gateway 9.06 release:
- AMQP Client Library--The new AMQP client library--available in JavaScript, Adobe Flex, and Microsoft Silverlight--allows developers to send and receive messages to and from an Advanced Message Queuing Protocol (AMQP) broker (version 0-9-1).
- Performance Improvements--The Kaazing Gateway code has been optimized to reduce memory and network-bandwidth utilization.
- Chrome native WebSocket support--Kaazing Gateway now supports the native implementation of WebSocket present in the latest releases of the Google Chrome browser.
- Updated spec compliance--Client libraries included with the Kaazing Gateway now support all required APIs of the newly updated WebSocket specification. See the API Changes section for more details.
- Flex IRC Client Library--Kaazing Gateway now offers an Adobe Flex client library for IRC.
- Firefox 3.5 Certification--Kaazing Gateway is certified with version 3.5 of the Mozilla Firefox browser.
- Updated Documentation--The documentation library has been updated to describe the new features in this release. Additionally, a series of new AMQP How-to documents (for different client technologies) and a new Real-Time Interactive Guide to AMQP have been added.
Browser Certification
The following browser versions are certified in the Kaazing WebSocket Gateway 9.06 Release:
Browser |
Certified Versions |
|---|---|
Apple Safari |
3.0+ |
Google Chrome |
1.0+ |
| Microsoft Internet Explorer |
6.0+ |
Mozilla Firefox |
1.5+ |
Opera |
9.5+ |
Client Library Technologies
The following matrixes show the client-side technologies that are provided in Kaazing WebSocket Gateway for each client library:
HTML5 Communication Client Libraries
| Client Library | JavaScript | Adobe Flex | Java | Microsoft Silverlight |
|---|---|---|---|---|
PostMessage |
|
N/A | N/A | N/A |
XMLHttpRequest |
|
N/A | N/A | N/A |
ServerSentEvents |
|
|
|
|
WebSocket |
|
|
|
|
ByteSocket |
|
|
|
|
Protocol Client Libraries
| Client Library | JavaScript | Adobe Flex | Java | Microsoft Silverlight |
|---|---|---|---|---|
AmqpClient (AMQP version 0-9-1) |
|
|
No | |
DarkstarClient |
|
No | No | No |
IrcClient |
|
|
No | No |
StompClient |
|
|
|
|
XmppClient |
|
|
No | No |
API Changes
The following API changes were made in the 9.06 release:
Specification compliance
To comply with recent changes to the WebSocket specification, the postMessage calls have been renamed to send on both WebSocket and ByteSocket. Additionally, the disconnect calls were renamed to close. This change is currently implemented for JavaScript and ActionScript.
The old functions will be removed in the next major version of the Kaazing WebSocket Gateway. Please use the updated APIs.
| Old API | New API |
|---|---|
| WebSocket.postMessage(data) | WebSocket.send(data) |
| WebSocket.disconnect() | WebSocket.close() |
| ByteSocket.postMessage(data) | ByteSocket.send(data) |
| ByteSocket.disconnect() | ByteSocket.close() |
Namespace Changes
The namespace declarations have changed in this release. Note the use of .com in xmlns.kaazing.com in the namespace declarations.
gateway-config.xml
The namespace for gateway-config.xml has changed as follows:
<gateway-config xmlns="http://xmlns.kaazing.com/gateway-config/dragonfire">
.
.
.
</gateway-config>
jaas-config.xml
The namespace for jaas-config.xml has changed as follows:
<jaas-config xmlns="http://xmlns.kaazing.com/jaas-config/dragonfire" >
.
.
.
</jaas-config>
Known Issues
The following is a list of known issues in the 9.06 release:
AMQP Support
Publishing AMQP messages to a server with no content body can cause the client library to enter an invalid state. The workaround is to always send data in the body of messages originating from the client.
Firefox SSE Support
The Firefox browser does not allow a page to establish multiple, concurrent connections to the same remote resource URL. For this reason, clients which make multiple Server-Sent Event connections to the exact same remote event stream will only successfully connect once. Although it is an unlikely scenario, to deliberately connect a client multiple times to the same event stream, developers can add different parameters to the connect URL to force Firefox to connect multiple times.
Connection Hangs When Using 64-bit Flash Runtime
When using WebSocket Secure in Flash runtime, the connection hangs due to an underlying issue.
Client Library and Browser Certification
The following restrictions apply to the Java and Microsoft Silverlight client libraries:
Java Client Library
Currently, the Java client library is not certified on:
- Mac OS X
- Apple Safari
- Firefox version 2.0 or earlier
- Opera 9.64
Microsoft Silverlight Client Library
Currently, the Microsoft Silverlight client library is not certified on:
- Mac OS X
- Linux
- Apple Safari
- Google Chrome