Send network packets over a TCP or UDP connection.
Packet is the main class representing a single network message. It has a byte code indicating the type of the message and a
byte type payload.
A stream has a send and receive channel with a hot-swappable connection for reconnects. The user has the responsibility to register a callback to consume errors via
// Connect to a server conn, _ := net.Dial("tcp", "localhost:7000") // Create a stream stream := packet.NewStream(1024) stream.SetConnection(conn) // Send a message stream.Outgoing <- packet.New(0, byte("ping")) // Receive message msg := <-stream.Incoming // Check message contents if string(msg.Data) != "pong"
// Close server connection to simulate server death server.Close() // Send packet while server is down (will be buffered until it reconnects) client.Outgoing <- packet.New(0, byte("ping")) // Reconnect newServer, _ := net.Dial("tcp", "localhost:7000") // Hot-swap connection client.SetConnection(newServer) // The previously buffered messages in the Outgoing channel will be sent now.
Please take a look at the style guidelines if you'd like to make a pull request.
|Cedric Fung||Scott Rayapoullé||Eduard Urbach|
Want to see your own name here?