ws

package
v0.0.0-...-d078b10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 1 Imported by: 20

Documentation

Index

Constants

View Source
const (

	// MessageTypePing sends a ping. After receiving a ping, the receiver
	// MUST respond with a pong message or the session will time out.
	MessageTypePing = "ping"
	// MessageTypePong is sent in response to a MessageTypePing.
	MessageTypePong = "pong"
	// MessageTypeOpen allocates a new peer-to-peer deviceconnect session.
	// The other peer can either respond with MessageTypeAccept or
	// MessageTypeError
	MessageTypeOpen = "open"
	// MessageTypeAccept is a successful response to an open request.
	MessageTypeAccept = "accept"
	// MessageTypeClose is sent when the session MUST close. All
	// communication on the session stop after receiving this message.
	MessageTypeClose = "close"
	// MessageTypeError is sent on a general protocol violation/error.
	// An error message MUST contain an Error object. If the object's
	// "close" field is set this message also closes the session.
	MessageTypeError = "error"
)
View Source
const ProtocolVersion = 1

Variables

This section is empty.

Functions

This section is empty.

Types

type Accept

type Accept struct {
	// Version is the accepted version used for this session.
	Version int `msgpack:"version"`
	// Protocols is a list of protocols the peer is willing to accept.
	Protocols []ProtoType `msgpack:"protocols"`
}

Accept is the schema for the message type "accept" for a successful response to a ProtoMsg handshake.

type Error

type Error struct {
	// The error description, as in "Permission denied while opening a file"
	Error string `msgpack:"err" json:"error"`
	// Close determines whether the session closed as a result of this error.
	Close bool `msgpack:"close" json:"close"`
	// Code is the error code associated with the error. Values in the
	// range 400-599 carry the same semantic meaning as the HTTP equivalent.
	// Please allocate new error codes starting from 1000 for custom error codes.
	Code int `msgpack:"code,omitempty" json:"code,omitempty"`
	// MessageProto is the protocol of the message that caused the error.
	MessageProto ProtoType `msgpack:"msgproto,omitempty" json:"message_protocol,omitempty"`
	// Type of message that raised the error
	MessageType string `msgpack:"msgtype,omitempty" json:"message_type,omitempty"`
	// Message id is passed in the MsgProto Properties, and in case it is available and
	// error occurs it is passed for reference in the Body of the error message
	MessageID string `msgpack:"msgid,omitempty" json:"message_id,omitempty"`
}

The Error struct is passed in the Body of MessageTypeError.

type Open

type Open struct {
	// Versions is a list of versions the client is able to interpret.
	Versions []int `msgpack:"versions"`
}

Open is the schema used for initiating a ProtoMsg handshake.

type ProtoHdr

type ProtoHdr struct {
	// Proto defines which protocol this message belongs
	// to (required).
	Proto ProtoType `msgpack:"proto"`
	// MsgType is an optional content type header describing
	// the protocol specific content type of the message.
	MsgType string `msgpack:"typ,omitempty"`
	// SessionID is used to identify one ProtoMsg stream for
	// multiplexing multiple ProtoMsg sessions over the same connection.
	SessionID string `msgpack:"sid,omitempty"`
	// Properties provide a map of optional prototype specific
	// properties (such as http headers or other meta-data).
	Properties map[string]interface{} `msgpack:"props,omitempty"`
}

ProtoHdr provides the info about what the ProtoMsg contains and to which protocol the message should be routed.

type ProtoMsg

type ProtoMsg struct {
	// Header contains a protocol specific header with a single
	// fixed ProtoType ("typ") field and optional hints for decoding
	// the payload.
	Header ProtoHdr `msgpack:"hdr"`
	// Body contains the raw protocol data. The data contained in Body
	// can be arbitrary and must be decoded according to the protocol
	// defined in the header.
	Body []byte `msgpack:"body,omitempty"`
}

ProtoMsg is a wrapper to messages communicated on bidirectional interfaces such as websockets to wrap data from other application protocols.

func (*ProtoMsg) Bind

type ProtoType

type ProtoType uint16

ProtoType defines how the ProtoMsg should be interpreted.

const (
	// ProtoInvalid signifies an invalid (uninitialized) ProtoMsg.
	ProtoInvalid ProtoType = iota
	// ProtoTypeShell is used for communicating remote terminal session data.
	ProtoTypeShell
	// ProtoTypeFileTransfer is used for file transfer from/to the device.
	ProtoTypeFileTransfer
	// ProtoTypePortForward is used for port-forwarding connections to the device.
	ProtoTypePortForward
	// ProtoTypeMenderClient is used for communication with the Mender client.
	ProtoTypeMenderClient

	// ProtoTypeControl is a reserved proto type for session control messages.
	ProtoTypeControl ProtoType = 0xFFFF
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL