hopp/examples/chat/protocol.md

2.4 KiB

Chat Protocol

This document describes a simple chat protocol. To re-generate the source files, run go run ./cmd/hopp-generate examples/chat/protocol.md examples/chat/protocol

Messages

0000 Error

Tag Name Type Required
0 Code U16 Yes
1 Description String No

Error is sent by a party when the other party has done something erroneous. The valid error codes are:

  • 0: General, unspecified error

The description field, if specified, determines a human-readable error to be shown to the user. The sending party must immediately close the transaction after this message is sent.

0001 Success

Success is sent by a party when it has successfully completed a task given to it by the other party. The sending party must immediately close the transaction after this message is sent.

0100 UpdateProfile

Tag Name Type Required
0 Nickname String No

UpdateProfile is sent by the client in a new transaction to update the profile details that will be shown to other connected clients.

0200 Join

Tag Name Type Required
0 Room String Yes

Join is sent by the client when it wishes to join a room. It must begin a new transaction, and that transaction will persist while the user is in that room. Messages having to do with the room will be sent along this transaction. To leave the room, the client must close the transaction.

0201 Chat

Tag Name Type Required
0 Nickname String No
1 Content String Yes

Chat is sent by the client when it wishes to post a message to the room. It is also relayed by the server to other clients to notify them of the message. It must be sent within a room transaction.

0300 JoinNotify

Tag Name Type Required
0 Nickname String No

JoinNotify is sent by the server when another client joins the room. It must be sent within a room transaction.

0301 LeaveNotify

Tag Name Type Required
0 Nickname String No

LeaveNotify is sent by the server when another client leaves the room. It must be sent within a room transaction.