Documentation for Ice 3.7. The documentation for Ice 3.6, Ice 3.5 and Ice 3.4 is available in separate spaces.

Skip to end of metadata
Go to start of metadata


Supported Features of the JavaScript Mapping

Ice for JavaScript does not support the entire set of Ice features that are found in the C++, Java, and C# language mappings, primarily due to platform and API limitations. Furthermore, there are some differences between using Ice for JavaScript in a browser and in Node.js.

The table below provides more details on the Ice for JavaScript feature set:





Synchronous invocations



Blocking RPCs are not compatible with JavaScript's execution model.

Asynchronous invocations



 Also see Asynchronous APIs in JavaScript

Synchronous dispatch




Asynchronous dispatch




Outgoing TCP connections




Incoming TCP connections



Applications must use bidirectional connections to receive callbacks.

Outgoing WS connections



WebSocket connections require the server to configure a Websocket endpoint.

Outgoing WSS connections



Secure WebSocket (WSS) connections require the server to configure IceSSL and a Websocket endpoint.

Outgoing SSL connections



Browser applications can use WSS.





DNS queries



The lack of support for DNS queries affects fault tolerance.

File logging




Property files




Flow control API



"Sent" callbacks are not supported.

Thread pools



Threads are not supported in JavaScript.

PerThread implicit context



Threads are not supported in JavaScript.

Protocol compression



Ice uses the bzip2 algorithm, which is not natively supported in JavaScript.

Communicator plug-ins




Dispatcher API




DispatchInterceptor API




Collocated invocations




Streaming API




Admin facility




DNS limitations

In most language mappings, the Ice run time performs a DNS query to resolve an endpoint's host name into one or more IP addresses. Specifying a multi-homed host name in an endpoint provides the client with a simple form of fault tolerance because Ice has multiple addresses to use during connection establishment.

This form of fault tolerance is not available when using Ice for JavaScript because the DNS API is not supported.




  • No labels