Network protocol

From Doomsday Wiki
Jump to: navigation, search

This article is a stub. You can help by expanding it.

This article describes the network packets used by libdeng2, dengsv, and dengcl.

CommandPackets

All CommandPackets will receive a reply in the form of a RecordPacket.

status

Client sends this to query the server's status.

Reply from server (server.status):

  • Array of Numbers version: major, minor, patchlevel, revision.
  • sessions
    • {session-id}
      • Dictionary of Text to Text users: user id ⇒ user name.

session.new

Client sends this to create a new session on the server.

  • Text map: map to load in the session's world.

Reply:

  • Text id: id of the created session.

session.delete

Client sends this to destroy an existing session on the server.

  • Text id: session id.

session.join

Client sends this when it wishes to join a session in progress.

  • Text id: id of the session.
  • Block userState: state of the user.

Reply from server:

  • Text userId: user's id in the session.

session.leave

Client sends this when it is leaving a session in progress.

No reply.

RecordPackets

user.welcome (Update)

Sent to a client after it has been promoted to user in the session.

  • Block worldState: state of the world.
  • users
    • Block {user-id}: state of user user-id.

The user's own state is not included under users.

user.joined (Update)

Sent after a client has been promoted to user in the session. Not sent to the promoted user.

  • Text id: id of the user who joined.
  • Block userState: state of the user who joined.

user.left (Update)

Sent after a client has been demoted from the session. Not sent to the demoted client.

  • Text id: id of the user who left.

session.ended (Update)

Sent when the session ends on the serverside, signaling the user session to end as well.