[PD1] restructure
This commit is contained in:
parent
c0e19b5774
commit
8553e1674e
17 changed files with 141 additions and 33 deletions
68
Projs/PD1/internal/protocol/protocol.go
Normal file
68
Projs/PD1/internal/protocol/protocol.go
Normal file
|
@ -0,0 +1,68 @@
|
|||
package protocol
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
type PacketType int
|
||||
|
||||
const (
|
||||
ReqPK PacketType = iota
|
||||
ReqAllMsg
|
||||
ReqMsg
|
||||
SendPK
|
||||
UsrMsg
|
||||
)
|
||||
|
||||
type PacketBody interface {}
|
||||
|
||||
type Packet struct {
|
||||
Flag PacketType
|
||||
Body PacketBody
|
||||
}
|
||||
|
||||
// Client --> Server: Ask for a user's public key
|
||||
type RequestPubKey struct {
|
||||
FromUID string
|
||||
KeyUID string
|
||||
}
|
||||
|
||||
// Client --> Server: Ask for all the client's messages in the queue
|
||||
type RequestAllMsg struct {
|
||||
FromUID string
|
||||
}
|
||||
|
||||
// Client --> Server: Ask for a specific message in the queue
|
||||
type RequestMsg struct {
|
||||
Num uint16
|
||||
}
|
||||
|
||||
// Server --> Client: Send the client the requested public key
|
||||
type SendPubKey struct {
|
||||
Key []byte
|
||||
}
|
||||
|
||||
// Bidirectional: Send messages between server and clients
|
||||
type SendMessage struct {
|
||||
ToUID string
|
||||
Subject []byte
|
||||
Body []byte
|
||||
}
|
||||
|
||||
type Message struct {
|
||||
FromUID string
|
||||
ToUID string
|
||||
Subject []byte
|
||||
Body []byte
|
||||
Timestamp time.Time
|
||||
}
|
||||
|
||||
func (p Packet) Marshal() ([]byte, error) {
|
||||
return json.Marshal(p)
|
||||
}
|
||||
|
||||
func (p *Packet) Unmarshal(data []byte) error {
|
||||
return json.Unmarshal(data, p)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue