Proxy string

Understand the new IceRPC syntax for proxy strings.

With Ice, a proxy string or stringified proxy represents the address of a remote Ice object. The corresponding concept in IceRPC is called a service address.

Service address is a core concept in IceRPC: it doesn't depend on Slice. When you send a request, you identify the target service with a service address.

Ice uses its own syntax for proxy strings, while IceRPC uses URIs for service addresses. The object identity in a proxy string is mapped to an absolute path in the service address URI as described on the Ice identity page.

Here are a few examples:

Ice proxy stringCorresponding IceRPC service address URI
hello:tcp -h localhost -p 10000
ice://localhost:10000/hello?transport=tcp
IceGrid/Locator:default -h 192.168.1.2 -p 10000
ice://192.168.1.2:10000/IceGrid/Locator
hello:tcp -h h1 -p 10000:tcp -h h2 -p 10000
ice://h1:10000/hello?transport=tcp&alt-server=h2:10000?transport=tcp

In Ice, a proxy without an endpoint is called an "indirect proxy". When you send a request to such a proxy, you need a Locator to locate the actual endpoints of this proxy.

In IceRPC, a service address without a server address has no special name: it's just a service address without a server address. The Ice adapter id is mapped to an adapter-id query parameter:

Ice proxy stringCorresponding IceRPC service address URI
hello
ice:/hello
hello@GreetersUnited
ice:/hello?adapter-id=GreetersUnited

Was this page helpful?