| Startup protocol changes for version 2: | |
| C->S S->C | |
| ==== ==== | |
| {later: | |
| GetRealPlugin(String pluginType, String platformId) | |
| FatalError(String message) | |
| RealPlugin(byte[] plugin) | |
| } | |
| CheckVersions(int minProtoVersion, int maxProtoVersion, | |
| String hostedHtmlVersion) | |
| FatalError(String message) | |
| ProtocolVersion(int protoVersion) | |
| {may be ommitted if no other supported transports: | |
| ChooseTransport(String[] supportedTransports) | |
| FatalError(String msg) | |
| SwitchTransport(String transport, String transportArgs) | |
| [If transport is not empty, all further communication should be | |
| switched to the selected transport. transportArgs varies by the | |
| transport.] | |
| } | |
| LoadModule(String url, String sessionKey, String userAgent, String moduleName) | |
| [sessionKey is some arbitrary string to identify one group of modules as | |
| being part of the same session of one application.] | |
| ... as before | |
| The v1 protocol LoadModule message is still accepted, though with reduced | |
| functionality in the OOPHM UI. After the module is loaded, v1 and v2 are | |
| exactly the same, which makes supporting both versions easier. |