FRIEND list lobby protocol extension

FRIEND list lobby protocol extension

For the discussion of infrastructure improvements and changes.

Moderator: Moderators

Post Reply
gajop
Moderator
Posts: 3051
Joined: 05 Aug 2009, 20:42

FRIEND list lobby protocol extension

Post by gajop »

I'd like to propose the addition of the friend system to the lobby protocol. The addition of the lobby protocol would ease the implementation of a friend list on the client side as it removes the need to deal with renames and similar. It also allows the friend list to persist on different computers/lobbies.

This patch adds the ignore system functionality to the uberserver: https://github.com/spring/uberserver/pull/104

Minimal client implementation would involve sending FRIENDREQUEST userName=value msg=value, and responding to the corresponding requests with a ACCEPTFRIENDREQUEST userName=value and DECLINEFRIENDREQUEST userName=value.

Addition commands and functionality can be seen as outlined in these commands:
Legend:
>>> (from client)
<<< (from server)

>>> FRIENDREQUEST userName=value [msg=value]
Description: Tells the server to send a friend request to the user. Only one friend request may exist between two users at any time.
<<< FREINDREQUEST userName=value [msg=value]
Description: Tells the user he has received a friend request.
>>> ACCEPTFRIENDREQUEST userName=value
Description: Tells the server the user has accepted the friend request. If the request is valid, both users will receive an FRIEND command next.
>>> DECLINEFRIENDREQUEST userName=value
Description: Tells the server the user has declined the friend request.
<<< FRIEND userName=value
Description: Tells the client a user has been added to the friend list.
>>> UNFRIEND userName=value
Description: Tells the server to remove a user from the client's friend list. Both users will receive an UNFRIEND command.
<<< UNFRIEND userName=value
Description: Tells the client a user has been removed from the friend list.
>>> FRIENDREQUESTLIST
Description: Requests the client's friend request list from the server.
<<< FRIENDREQUESTLISTBEGIN
Description: Sent by the server when sending the friend request list to the client.
Response: 0 or more FRIENDREQUESTLIST commands and finally a FRIENDREQUESTLISTEND command.
<<< FRIENDREQUESTLIST userName=value
Description: Multiple commands of this kind may be sent after a FRIENDREQUESTLISTBEGIN command (or none, if the friend request list is empty).
<<< FRIENDREQUESTLISTEND
Description: Sent to a client who previously requested the friend request list, after a series of FRIENDREQUESTLIST commands.
>>> FRIENDLIST
Description: Requests the client's friend list from the server.
<<< FRIENDLISTBEGIN
Description: Sent by the server when sending the requested friend list to the client.
Response: 0 or more FRIENDLIST commands and finally a FRIENDLISTEND command.
<<< FRIENDLIST userName=value
Description: Multiple commands of this kind may be sent after a FRIENDLISTBEGIN command (or none, if the friend list is empty).
<<< FRIENDLISTEND
Description: Sent to a client who previously requested the friend list, after a series of FRIENDLIST commands.
Post Reply

Return to “Infrastructure Development”