Version incompatibility between client and server (in preparation for IPv6)

Options
I'm trying to get my app approved by Apple, but am running into much the same problem described here:

http://forum.photonengine.com/discussion/7843/photon-server-and-ipv6

Previously, we'd been using the Photon Realtime Unity 3D SDK v4.0.0.7 (I believe -- it's an older version. Looking at the IPv6 page, it seems as though we need at least v4.1.x.x on the client-side to support IPv6.

On the server side, we'd been using Photon Server v3.4.28, but again it looks as though a newer version is required for IPv6, so I upgraded to v3.4.31.

After updating my code in various places, I tried to connect to my server but got the following error:

4480: 09:40:03.640 - CENetThreadPool::Process - Exception - CENetPeerBase::HandleIncomingCommands() - PeerAppSelection()- Init: Unexpected client lib delimiter, expected: 0x01, got: 0x1e : id = 1 [0] Datagram: 00 01 00 02 00 00 00 2C 26 48 56 8A 01 FF 00 04 00 00 00 14 00 00 00 00 00 00 00 00 04 08 F2 EF 06 00 01 04 00 00 00 35 00 00 00 01 F3 00 01 06 1E 41 01 06 00 44 75 6E 67 65 6F 6E 43 72 61 77 6C 65 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - .......,&HV............................5.........A...DungeonCrawler.................. from: 10.0.1.34:57414 on: 10.0.1.134:5055

So it seems as though maybe the client that supports IPv6 is only compatible with servers running v4.x? If that's the case, it sounds like this could be quite the undertaking to get everything going on the server. I hope I'm misunderstanding something here, but I've never been able to find a client/server compatibility chart on your site so I'm kind of at a loss for which client versions should be able to connect to which server versions.

Is there a realtime Unity client version that supports both IPv6 and will connect to a server running version 3.4.31, or am I in for a larger upgrade to 4.1 on the server?

Comments

  • JohnTube
    JohnTube ✭✭✭✭✭
    edited March 2017
    Options
    Hi @atraver,

    Thank you for choosing Photon!

    As you can read in the documentation here latest v3 version supports IPv6.

    Clients should be backward compatible.

    So you need a client version that supports IPv6 and a server version that support IPv6 also.
    So these should be fine:
    - client: v4.1.x.x
    - server: v3.4.31.10808
  • atraver
    atraver
    edited March 2017
    Options
    Thanks for the quick response.

    Unfortunately, that's exactly what I have but the exception persists.

    Edit: Just to add a bit more clarity, the client version is 4.1.1.7, and the server is 3.4.31.10808. The ENet exception I pasted above happens immediately after my client attempts to connect to the server. The server exception happens, and the client disconnects.

    Is it possible there's a shared DLL between client and server that's out-of-sync? I'd really, really rather stay on Photon 3.4 on the server rather than upgrade to 4.0, if possible. We've mucked with the LoadBalancing source a fair bit and the upgrade process could be painful.
  • JohnTube
    JohnTube ✭✭✭✭✭
    Options
    Hi @atraver,

    You need to update server to v4.
    You can start with the "3.4 to 4.0 Upgrade Guide".
  • atraver
    Options
    I actually ended up getting v3.4.31.10808 working, but I'm not exactly sure why it's working. The process was quite painful, though: I had to copy the src-server directory for the latest version into my existing version's directory, and did a massive diff/merge of the changes.

    However, it would be nice if you or someone else could explain to me what actually causes the unexpected client lib delimiter error, so I have a better understanding of what happened, as opposed to "magic." :) Since I don't have access to the code at that level, it's unfortunately opaque to me.

    Is that something you'd be able to help me with? It just worries me not knowing what actually changed.

    We'll most likely update our Photon Server SDK to v4.0 at some point in the future, but it's not something we wanted to bite off right now, as it's a larger endeavor.