Archived

This forum has been archived. Please start a new discussion on GitHub.

Two-way RPC connection between Silverlight4 and iOS4

Dear Ice Support,

We are working on a framework that connects iOS device and Silverlight application.
We could not understand from the documentation if Ice for Silverlight can be both client and server at the same time.

Can we call Silverlight from an iOS device and vice versa ?

With regards,
Evgeni Petrov
HoneyDev

Comments

  • xdm
    xdm La Coruña, Spain
    We could not understand from the documentation if Ice for Silverlight can be both client and server at the same time.

    Yes it can, with some limitations.

    Ice Silverlight socket transport allow applications to connect to any server throw glacier2 router. For that to work you need to run a Silverlight policy server in the glacier2 router host. The range of port that Silverlight allows connections is also limited to 4502 to 4534. and finally SSL isn't supported for Socket transport.

    You will need to have a server in between iOS and Silverlight, that Server will forward request from iOS to SL and SL to iOS, the server will run behind Glacier2, that machine will also host a Silverlight policy server configured to allow the connections.

    This architecture is similar to ChatDemo where you have Silverlight and iPhone clients talking throw Glacier2 both using callbacks.
  • Thank you for your answer.

    We need to connect iOS device and Silverlight on a local network. We will not be traversing outside the local network.
    We have already implemented network discovery and authorization on udp broadcast. We have also implemented tcp authorization and tcp connection.

    So we have straight TCP communication but we do not want to deal with low-level RPC implementation. We are looking into Ice to deal with RPC communication between Silverlight and iOS without any 3rd party.

    I am sorry I did not make my case clear the first time.

    With regards,
    Evgeni Petrov
    HoneyDev
  • bernard
    bernard Jupiter, FL
    Hi Evgeni,

    The latest version of Ice for Silverlight supports client invocations and also callbacks over bi-directional connections to a Glacier2 server. So a Silverlight client can connect to an iOS / Ice Touch server through Glacier2, and get callbacks from this iOS server.

    We could add support for direct connections (without Glacier2). This way, a Silverlight client could establish directly a bi-dir connection with an iOS server, and get callbacks over this connection, without a Glacier2 router in between. If you need this feature for a commercial project, please contact us at info@zeroc.com.

    Callbacks over a bi-dir connection is nice, however, it's not the same as a full server side support. Your iOS application can't connect to an Ice for Silverlight server; unfortunately, implementing full server-side support in Silverlight doesn't seem doable.

    Best regards,
    Bernard
  • Thank you for you answer.

    As we are looking for this application to work even when no internet connection we cannot compromise with glacier2 server.

    We will contact you through email to discuss the possibilities of commercial licence.

    Thank you for the fast responses,
    Evgeni Petrov
    HoneyDev
  • bernard
    bernard Jupiter, FL
    Hi Evgeni,

    You can run the Glacier2 router on the same LAN as your iOS and Silverlight applications; an Internet connection is not required.

    Naturally, running a Glacier2 router on the LAN means having a Windows/Linux/Mac computer with Glacier2 on this LAN, and this may not be practical for your application. Direct communications would certainly be better.

    Best regards,
    Bernard
  • Hi Bernard,

    Is it possible to use Ice callbacks in Silverlight applications without Glacier2, but directly - the same way as we do in C#.NET desktop applications?

    Thanks,

    Andrew