Documentation ¶
Index ¶
- Constants
- Variables
- func NewRandID() []byte
- func NewUUID() []byte
- func Process(ctx Context, m *MsgBuffer, conn Connection) error
- func ProcessRaw(ctx Context, data []byte, conn Connection) error
- func StatusText(code int) string
- func WaitTimeout(wg *sync.WaitGroup, timeout time.Duration) bool
- type Connection
- type ConnectionStore
- type Context
- type ContextImpl
- type Handler
- type HandlerStore
- type MessageStore
- type MsgBuffer
- func MakeCtxReply(ctx Context, m *MsgBuffer, statusCode uint16, body []byte) (*MsgBuffer, error)
- func NewCtxConnectionMsg(ctx Context, to []byte, authorization []byte, callback Handler) (*MsgBuffer, error)
- func NewMsgBuffer(msgId []byte, action int8, status uint16, to []byte, from []byte, path []byte, ...) (*MsgBuffer, error)
- func ParseMsg(data []byte, ctx Context) (m *MsgBuffer)
- type MsgObject
- type OnConnection
- type OnMessage
- type OnUnknown
- type QueueStore
- type Subscriber
- type SubscriberStore
- type Subscribers
Constants ¶
View Source
const ( ActionACK = 0 ActionGET = 1 ActionHEAD = 2 ActionPOST = 3 ActionPUT = 4 ActionDELETE = 5 ActionCONNECT = 6 ActionOPTIONS = 7 ActionTRACE = 8 ActionPATCH = 9 ActionRESPONSE = 10 ActionSUBSCRIBE = 11 ActionUNSUBSCRIBE = 12 ActionCAST = 13 )
View Source
const ( GuaranteeNONE = 0 GuaranteeAT_LEAST_ONCE = 1 )
View Source
const ( StatusContinue = 100 // RFC 7231, 6.2.1 StatusSwitchingProtocols = 101 // RFC 7231, 6.2.2 StatusProcessing = 102 // RFC 2518, 10.1 StatusOK = 200 // RFC 7231, 6.3.1 StatusCreated = 201 // RFC 7231, 6.3.2 StatusAccepted = 202 // RFC 7231, 6.3.3 StatusNonAuthoritativeInfo = 203 // RFC 7231, 6.3.4 StatusNoContent = 204 // RFC 7231, 6.3.5 StatusResetContent = 205 // RFC 7231, 6.3.6 StatusPartialContent = 206 // RFC 7233, 4.1 StatusMultiStatus = 207 // RFC 4918, 11.1 StatusAlreadyReported = 208 // RFC 5842, 7.1 StatusIMUsed = 226 // RFC 3229, 10.4.1 StatusMultipleChoices = 300 // RFC 7231, 6.4.1 StatusMovedPermanently = 301 // RFC 7231, 6.4.2 StatusFound = 302 // RFC 7231, 6.4.3 StatusSeeOther = 303 // RFC 7231, 6.4.4 StatusNotModified = 304 // RFC 7232, 4.1 StatusUseProxy = 305 // RFC 7231, 6.4.5 StatusTemporaryRedirect = 307 // RFC 7231, 6.4.7 StatusPermanentRedirect = 308 // RFC 7538, 3 StatusBadRequest = 400 // RFC 7231, 6.5.1 StatusPaymentRequired = 402 // RFC 7231, 6.5.2 StatusForbidden = 403 // RFC 7231, 6.5.3 StatusNotFound = 404 // RFC 7231, 6.5.4 StatusMethodNotAllowed = 405 // RFC 7231, 6.5.5 StatusNotAcceptable = 406 // RFC 7231, 6.5.6 StatusProxyAuthRequired = 407 // RFC 7235, 3.2 StatusRequestTimeout = 408 // RFC 7231, 6.5.7 StatusConflict = 409 // RFC 7231, 6.5.8 StatusGone = 410 // RFC 7231, 6.5.9 StatusLengthRequired = 411 // RFC 7231, 6.5.10 StatusPreconditionFailed = 412 // RFC 7232, 4.2 StatusRequestEntityTooLarge = 413 // RFC 7231, 6.5.11 StatusRequestURITooLong = 414 // RFC 7231, 6.5.12 StatusUnsupportedMediaType = 415 // RFC 7231, 6.5.13 StatusRequestedRangeNotSatisfiable = 416 // RFC 7233, 4.4 StatusExpectationFailed = 417 // RFC 7231, 6.5.14 StatusTeapot = 418 // RFC 7168, 2.3.3 StatusUnprocessableEntity = 422 // RFC 4918, 11.2 StatusLocked = 423 // RFC 4918, 11.3 StatusFailedDependency = 424 // RFC 4918, 11.4 StatusUpgradeRequired = 426 // RFC 7231, 6.5.15 StatusPreconditionRequired = 428 // RFC 6585, 3 StatusTooManyRequests = 429 // RFC 6585, 4 StatusRequestHeaderFieldsTooLarge = 431 // RFC 6585, 5 StatusInternalServerError = 500 // RFC 7231, 6.6.1 StatusNotImplemented = 501 // RFC 7231, 6.6.2 StatusBadGateway = 502 // RFC 7231, 6.6.3 StatusGatewayTimeout = 504 // RFC 7231, 6.6.5 StatusHTTPVersionNotSupported = 505 // RFC 7231, 6.6.6 StatusVariantAlsoNegotiates = 506 // RFC 2295, 8.1 StatusInsufficientStorage = 507 // RFC 4918, 11.5 StatusLoopDetected = 508 // RFC 5842, 7.2 StatusNotExtended = 510 // RFC 2774, 7 StatusNetworkAuthenticationRequired = 511 // RFC 6585, 6 )
HTTP status codes as registered with IANA. See: http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
Variables ¶
View Source
var EnumNamesAction = map[int]string{ ActionACK: "ACK", ActionGET: "GET", ActionHEAD: "HEAD", ActionPOST: "POST", ActionPUT: "PUT", ActionDELETE: "DELETE", ActionCONNECT: "CONNECT", ActionOPTIONS: "OPTIONS", ActionTRACE: "TRACE", ActionPATCH: "PATCH", ActionRESPONSE: "RESPONSE", ActionSUBSCRIBE: "SUBSCRIBE", ActionUNSUBSCRIBE: "UNSUBSCRIBE", ActionCAST: "CAST", }
View Source
var EnumNamesGuarantee = map[int]string{ GuaranteeNONE: "NONE", GuaranteeAT_LEAST_ONCE: "AT_LEAST_ONCE", }
Functions ¶
func ProcessRaw ¶
func ProcessRaw(ctx Context, data []byte, conn Connection) error
func StatusText ¶
StatusText returns a text for the HTTP status code. It returns the empty string if the code is unknown.
Types ¶
type Connection ¶
type Queue interface { QueuePut(msg *MsgBuffer, conn Connection) // QueuePop() interface{} // QueuePeek() interface{} //QueueDel(key string) QueueAck(key string, conn Connection) }
type ConnectionStore ¶
type ConnectionStore interface { GetConnection(key string) Connection SetConnection(key string, val Connection) DelConnection(key string) }
type Context ¶
type Context interface { Recieve(m *MsgBuffer, conn Connection) error RecieveRaw(data []byte, conn Connection) error Name([]byte) []byte Debug(*bool) bool }
type ContextImpl ¶
type ContextImpl struct {
// contains filtered or unexported fields
}
func (*ContextImpl) Debug ¶
func (c *ContextImpl) Debug(set *bool) bool
func (*ContextImpl) Name ¶
func (c *ContextImpl) Name(set []byte) []byte
func (*ContextImpl) Recieve ¶
func (c *ContextImpl) Recieve(m *MsgBuffer, conn Connection) error
func (*ContextImpl) RecieveRaw ¶
func (c *ContextImpl) RecieveRaw(data []byte, conn Connection) error
type HandlerStore ¶
type MessageStore ¶
type MsgBuffer ¶
type MsgBuffer struct { Data []byte Fields *IndisMQ.Imq Callback Handler Timestamp int64 Context Context // contains filtered or unexported fields }
Msg ... Imq.Msg.rawData Imq.Msg.
func MakeCtxReply ¶
func NewCtxConnectionMsg ¶
func NewMsgBuffer ¶
type MsgObject ¶
type MsgObject struct { MsgID string Action int8 Status uint16 To string From string Path string Authorization string Body []byte Meta map[string]string Callback Handler }
func NewCtxMsgObject ¶
func NewMsgObject ¶
type OnConnection ¶
type OnConnection interface { OnConnection(m *MsgBuffer, conn Connection) (ok bool) OnDisconnected(m *MsgBuffer, conn Connection) (ok bool) }
for context
type OnMessage ¶
type OnMessage interface {
OnMessage(m *MsgBuffer, conn Connection) (ok bool)
}
type OnUnknown ¶
type OnUnknown interface {
OnUnknown(m *MsgBuffer, conn Connection) (queue bool)
}
type QueueStore ¶
type QueueStore interface { ProcessTimeout() // PutQueue(msg *MsgBuffer, conn Connection) // PopQueue() // GetQueue(key string) Queue // GetQueueOrNew(key string) Queue // DelQueue(key string) // AckQueue(key string, conn Connection) //SetQueue(key string, q Queue) // PutQueue(msg *MsgBuffer, conn Connection) (queue Queue) // PutQueueReply(msg *MsgBuffer, conn Connection) (queue Queue) // GetQueueReply(m *MsgBuffer) (msg *MsgBuffer, conn Connection, queue Queue) ProcessQueue(key string) }
type Subscriber ¶
type Subscriber interface { OnSubscribe(m *MsgBuffer, conn Connection) (ok bool) OnUnsubscribe(m *MsgBuffer, conn Connection) }
type SubscriberStore ¶
type Subscribers ¶
type Subscribers interface { ConnectionStore SubscriberStore }
Source Files ¶
Click to show internal directories.
Click to hide internal directories.