Documentation ¶
Overview ¶
Package packet provides network messaging protocol and serialization layer.
Packet can be created with shortcut:
senderAddr, _ := host.NewAddress("127.0.0.1:1337") receiverAddr, _ := host.NewAddress("127.0.0.1:1338") sender := host.NewHost(senderAddr) receiver := host.NewHost(receiverAddr) msg := packet.NewPingPacket(sender, receiver) // do something with packet
Or with builder:
builder := packet.NewBuilder() senderAddr, _ := host.NewAddress("127.0.0.1:1337") receiverAddr, _ := host.NewAddress("127.0.0.1:1338") sender := host.NewHost(senderAddr) receiver := host.NewHost(receiverAddr) msg := builder. Sender(sender). Receiver(receiver). Type(packet.TypeFindHost). Request(&packet.RequestDataFindHost{}). Build() // do something with packet
Packet may be serialized:
msg := &packet.Packet{} serialized, err := packet.SerializePacket(msg) if err != nil { panic(err.Error()) } fmt.Println(serialized)
And deserialized therefore:
var buffer bytes.Buffer // Fill buffer somewhere msg, err := packet.DeserializePacket(buffer) if err != nil { panic(err.Error()) } // do something with packet
Index ¶
- Constants
- func SerializePacket(q *Packet) ([]byte, error)
- type Builder
- func (cb Builder) Build() (packet *Packet)
- func (cb Builder) Error(err error) Builder
- func (cb Builder) Receiver(host *host.Host) Builder
- func (cb Builder) Request(request interface{}) Builder
- func (cb Builder) RequestID(id network.RequestID) Builder
- func (cb Builder) Response(response interface{}) Builder
- func (cb Builder) TraceID(traceID string) Builder
- func (cb Builder) Type(packetType types.PacketType) Builder
- type Packet
- type RequestGetRandomHosts
- type RequestPulse
- type RequestTest
- type ResponseGetRandomHosts
- type ResponsePulse
- type ResponseTest
Constants ¶
const (
TestPacket = types.PacketType(1337)
)
Variables ¶
This section is empty.
Functions ¶
func SerializePacket ¶
SerializePacket converts packet to byte slice.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder allows lazy building of packets. Each operation returns new copy of a builder.
func NewBuilder ¶
NewBuilder returns empty packet builder.
type Packet ¶
type Packet struct { Sender *host.Host Receiver *host.Host Type types.PacketType RequestID network.RequestID RemoteAddress string TraceID string Data interface{} Error error IsResponse bool }
Packet is DHT packet object.
type RequestGetRandomHosts ¶
type RequestGetRandomHosts struct {
HostsNumber int
}
RequestGetRandomHosts is data for the call that returns random hosts of the Insolar network.
type RequestPulse ¶
RequestPulse is data received from a pulsar.
type RequestTest ¶ added in v0.6.3
type RequestTest struct {
Data []byte
}
type ResponseGetRandomHosts ¶
ResponseGetRandomHosts is the response containing random hosts of the Insolar network.
type ResponsePulse ¶
ResponsePulse is the response for a new pulse from a pulsar.
type ResponseTest ¶ added in v0.6.3
type ResponseTest struct {
Number int
}