realXtend/naali — pull request #533 by Juginabi (2012-09-18 08:43:43+00:00)
Title: Tundra2 multiconnection feature

This is a proposal for multiconnection feature for Tundra2. With these alterations it is possible to connect to multiple servers from one client application window. Loginbrowser.js has been changed towards easier usage of this new feature. New connections can be created from 1st tab (login-tab) and new connections create additional tabs. Connections can be disconnected by closing the appropriate tab. Multiconnection can also be used without browser UI by using console commands; connect, disconnect, switchscene. No multiple connections to single servers are allowed. I figured it would be better to just prompt the user to the already created tab where connection to server is already made up and running.

This implementation also introduces UUID (universally unique identifier) generation serverside which is transmitted to client on connection for easier separation of messaging between specific scenes. UUID is transmitted using extended messageLoginReply which naturally breaks backwards compatibility with previous versions (which possibly alone warrants instant reject on this pull request).

Majority of changes are inside TundraProtocolModule. Server, Client, KristalliProtocolModule, TundraProtocolModule and MessageLoginReply.

This has been tested on Linux Ubuntu 12.04. Feedback, bug reports and comments are welcome. Additional information can be found from /bin/MULTICONNECTION_README.

First pull request ever to the open-source project. yolo.

-- Jukka Vatjus-Anttila / Center for Internet Excellence