Spring client lobby protocol

Spring client lobby protocol

Discuss the source code and development of Spring Engine in general from a technical point of view. Patches go here too.

Moderator: Moderators

Post Reply
pulsar
Posts: 12
Joined: 06 Apr 2007, 13:51

Spring client lobby protocol

Post by pulsar »

Hello All,

I hope i havent made another useless thread but i have a problem. I'm trying to gather information about spring client lobby protocol. I'd like to make my own (firstly private) spring lobby as a hobby. I'm not new in programming but i havent made very big projects so far. So i'm kinda new in building a program depending on possibly big protocols. Could someone help me a small bit where i should start?

For myself i think i have to start with making a connection and try to understand the protocol of sending and receiving messages to te spring server. Does anyone know where i can find the connectionstring and the commands for the protocol?
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: Spring client lobby protocol

Post by hoijui »

you should also have a look at the source code of other lobbies or lobby servers, we have them in C++, Python, Java, C# and Delphi.
but frankly.. it would serve the community more if you'd start engine deving. ;-)
what languages do you know?
Satirik
Lobby Developer
Posts: 1688
Joined: 16 Mar 2007, 18:27

Re: Spring client lobby protocol

Post by Satirik »

************
Last edited by Satirik on 07 Jan 2011, 19:35, edited 1 time in total.
pulsar
Posts: 12
Joined: 06 Apr 2007, 13:51

Re: Spring client lobby protocol

Post by pulsar »

I dont like to help with engine developing because i dont want anyone depending on me. Its purely hobby i'm going to do.

My known languages from best to less good: Vb.net, C#, Java, Delphi
User avatar
Agon
Posts: 527
Joined: 16 May 2007, 18:33

Re: Spring client lobby protocol

Post by Agon »

If you send a command like: "SAYPRIVATE username message"
you need to put an newline at the end: "SAYPRIVATE username message\n"
This was one of the first problems I had.

And of course hoijui is right, it would serve the community more if you would develop on the engine.

Btw. an basic implementation in Go and Ruby exists, too.
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: Spring client lobby protocol

Post by knorke »

In zero-k lobby you can type "server" in the adressbar and see the protocol traffic.
You will it is textbased which is very nice, only some flags for ready-status etc are bitfields. If you start with a chat-only lobby you will only need a handfull of protocoll commands or so: LOGIN, JOIN, PING, SAY, SAID
I think all your languages can do network stuff, if you do not know network programming yet google sockets and winsock.
For login, the password must not be send cleartext but as MD5, strangely the MD5's in googled up produced different hashes than the one the spring sever wanted. Not sure how I got it in the end and maybe its changed now, just saying in case you wonder about that...
User avatar
Agon
Posts: 527
Joined: 16 May 2007, 18:33

Re: Spring client lobby protocol

Post by Agon »

It is a base64 encoded md5.
To get the code:
string(base64(md5(password as clear text string)))
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: Spring client lobby protocol

Post by knorke »

ah, thanks. but wasnt there a way to make hashs with spring or a command to make server send it to you or something? or was it a lobby feature?
anyway, appearently some online generators use the words entered by users to build a hash->clear text password data base, so if you use them be carefull what you enter and stuff...
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: Spring client lobby protocol

Post by AF »

The only reason we hash them at all is so that scriptkiddies who accidentally find it have no idea what the password is. Anyone with any sense realises that you dont need to figure out the original password, you already have everything you need to login by having the hash, since the server just uses and stores whatever its sent in plaintext.

So for example, if I dont bother to hash and base64encode, I can send 'password' in its raw unprocessed form, and that is my new password.

So, the reason we still base64encode and hash, is because if we dont then all the users who originally used tasclient will not work because of the mismatching hashes.

If your sure the user will never use a rival lobby client, you can use whatever hashing system you like if any, Battlehub/AFLobby had an option to use SHA hashes instead of MD5
pulsar
Posts: 12
Joined: 06 Apr 2007, 13:51

Re: Spring client lobby protocol

Post by pulsar »

Thanks for all the info. The info of the first 2 or 3 messages were already known for me but later replys are very usefull (ofcourse the first messages were usefull too btw) !
Post Reply

Return to “Engine”