Feature #185

Client/Server Protocol Compatibility

Added by colin moock 950 days ago. Updated 473 days ago.

Status :Closed Start :08/03/2009
Priority :Normal Due date :
Assigned to :- % Done :

0%

Category :UPC
Target version :Union 1.0 Alpha 3

Description

Problem

When an old client (perhaps held in a web browser's cache) connects to a newer server that no longer supports the old client's protocol, the old client cannot communicate properly with the newer server.

Solution

Each client should report the version of the protocol it uses. The server then should decide whether the client's protocol-version is compatible with the server's protocol-version, according to the following rules:

  • Given a protocol version number structured as A.B.C (for example, 1.2.1)...
  • If the server's A and the client's A do not match, or the server's B and the client's B do not match, the server should send an "incompatible" message and disconnect the client.
  • If the server's C and the client's C do not match, the server should send an "incompatible" message, but should not disconnect the client. The client application must decide whether to stay connected. The application may wish to stay connected if it does not use any features that differ between the client's protocol-version and the server's protocol-version.
  • If the server and client's A, B, and C all match, the server should send a compatible message.

Implementation

This feature requires the following UPC specifcation changes:

  • u65 to add new argument: protocolVersion.
  • u66 to add new argument: protocolVersion.
  • u66 to add new argument: protocolCompatible. values: true or false. if false, the u66 message is immediately followed by a server-initiated disconnection.

History

07/24/2009 03:33 AM - colin moock

  • Status changed from New to Closed

10/19/2010 03:04 PM - colin moock

  • Start changed from 06/29/2009 to 08/03/2009

Also available in: Atom