Well indeed I also thought about lobby integration into browsers, but I wanted to keep it simple at start.
However you're right, we must keep this feature in mind to specify URL format, that's why I've changed a little my URL format proposal:
slp://[<lobbyLogin>[:<lobbyPassword>]@]<lobbyServerHost>[:<lobbyServerPort>][/<resourceType>/<resourceId>]
- slp: stands for "Spring Lobby Protocol"
- <lobbyLogin>: lobby server login (ex: "bibim")
- <lobbyPassword>: lobby server password (ex: "abcdefgh")
- <lobbyServerHost>: hostname/ip of the Spring lobby server which hosts the battle (ex: "taspringmaster.clan-sy.com")
- <lobbyServerPort>: port of the Spring lobby server which hosts the battle (ex: "8200")
- <resourceType>: type of resource pointed by the URL (currently, it can only be "channel" or "battle")
- <resourceId>: identificator of the resource pointed by the URL (if <resourceType>="channel", then <resourceId> is the channel name, if <resourceType>="battle", then <resourceId> is either the internal battle ID, or the lobby login of the battle host)
Additionnaly, the following URL format can be used inside a lobby server:
slp://./<resourceType>/<resourceId>
- "." means that the URL is relative to current lobby server
Some examples:
slp://bibim:
abcdefgh@taspringmaster.cla ... annel/help
- if clicked from browser, it automatically launches the default lobby client, connects to taspringmaster.clan-sy.com on port 8200 using login bibim and password abcdefgh, then automatically joins channel #help
- if clicked from lobby client (in a chat message for instance), then if it is currently connected to taspringmaster.clan-sy.com:8200 it just joins channel #help. If taspringmaster.clan-sy.com:8200 is not the current server it shows a warning.
slp://
bibim@taspringmaster.clan-sy.com/battle/Stalag_13
- if clicked from browser, it automatically launches the default lobby client, connects to taspringmaster.clan-sy.com on default lobby port (8200), using login bibim and asking for password if there is no password stored for user bibim and server taspringmaster.clan-sy.com, then joins the battle hosted by user "Stalag_13" if it exists
- if clicked from lobby client itself, then if it is currently connected to taspringmaster.clan-sy.com:8200 it just joins the battle hosted by user "Stalag_13" if it exists. If taspringmaster.clan-sy.com:8200 is not the current server then it shows a warning.
slp://taspringmaster.clan-sy.com/battle/123
- if clicked from browser, it automatically launches the default lobby client, connects to taspringmaster.clan-sy.com on default lobby port (8200), using login and password stored internally for server taspringmaster.clan-sy.com (if there is no login/password associated to this server, it asks for login/password), then joins the battle whose battle ID is 123
- if clicked from lobby client itself, then if it is currently connected to taspringmaster.clan-sy.com:8200 it just joins the battle whose battle ID is 123 if it exists. If taspringmaster.clan-sy.com:8200 is not the current server then it shows a warning.
slp://buildbot.no-ip.org
- if clicked from browser, it automatically launches the default lobby client then connects to buildbot.no-ip.org on default lobby port (8200), using login and password stored internally for server buildbot.no-ip.org (if there is no login/password associated to this server, it asks for login/password)
- if clicked from lobby client itself, then if it is currently connected to buildbot.no-ip.org:8200 it does nothing. If buildbot.no-ip.org:8200 is not the current server then it shows a warning.
slp://./battle/bibim
- if clicked from browser, maybe it should launch the default lobby client and try to connect to default lobby server/port, using login and password associated to this server, then joins the battle hosted by player bibim if it exsists.
- if clicked from lobby client, it joins the battle hosted by player bibim if it exists.
NOTE:
Currently TASClient only stores a global login/password, not server-specific login/password as FTP clients do for instance. This can be dangerous if SLP URLs are implemented because then anyone could posts URLs like "slp://my.own.server.com", and if people click on these URLs, it tries to connect to my.own.server.com sending their global login and encrypted password.