Documentation ¶
Index ¶
- Constants
- Variables
- func NewSocketResponder(req *http.Request, middleware ResponderMiddlewareFunc) middleware.Responder
- type ResponderMiddlewareFunc
- type SocketManager
- type SocketPool
- type SocketResponder
- type WebSocket
- type WebSocketClient
- func (c *WebSocketClient) AssignHandler(handler WebSocketHandlerFunc) WebSocket
- func (c *WebSocketClient) AssignPool(pool SocketPool) WebSocket
- func (c *WebSocketClient) Close(code int, reason string) (err error)
- func (c *WebSocketClient) GetID() uuid.UUID
- func (c *WebSocketClient) Handler() WebSocketHandlerFunc
- func (c *WebSocketClient) IsClosed() bool
- func (c *WebSocketClient) Pool() SocketPool
- func (c *WebSocketClient) PushMessage(message *WebSocketMessage) error
- func (c *WebSocketClient) Read() *WebSocketMessage
- func (c *WebSocketClient) ResetPool() WebSocket
- func (c *WebSocketClient) Run() error
- func (c *WebSocketClient) Send(message []byte) (err error)
- func (c *WebSocketClient) SetError(err error)
- func (c *WebSocketClient) SetID(id uuid.UUID) WebSocket
- type WebSocketHandlerFunc
- type WebSocketMessage
Constants ¶
View Source
const ( // MsgTypeInit Initialization message (the first message received by the socket handler). MsgTypeInit = "swaggerws:message_init" // MsgTypeSocket message from the websocket external client via socket. MsgTypeSocket = "swaggerws:message_socket" )
Variables ¶
View Source
var ( ErrInternalServerError = errors.New("internal server error") ErrManagerDestroyed = errors.New("socket manager is destroyed") ErrMessageStackOverflow = errors.New("socket message-stack is overflow") ErrSendStackOverflow = errors.New("socket send-stack is overflow") ErrSocketIsClosed = errors.New("socket is already closed") ErrSocketClosedByClient = errors.New("socket closed by client from other side") ErrPoolAlreadyInContainer = errors.New("socket pool already exists in the container") ErrPoolNotFoundInContainer = errors.New("socket pool is not found in the container") ErrSocketAlreadyInPool = errors.New("socket already exists in the pool") ErrSocketNotFoundInPool = errors.New("socket is not found in the pool") ErrResponderMiddlewareIsNil = errors.New("responder middleware function is nil") )
Functions ¶
func NewSocketResponder ¶
func NewSocketResponder(req *http.Request, middleware ResponderMiddlewareFunc) middleware.Responder
NewSocketResponder Returns new SocketResponder.
Types ¶
type ResponderMiddlewareFunc ¶
type SocketManager ¶
type SocketManager interface { AppendPool(pool SocketPool) error Destroy() chan error GetOrCreatePool(poolID uuid.UUID) (SocketPool, bool, error) GetPool(poolID uuid.UUID) (SocketPool, error) IsDestroyed() bool IsReady() bool }
func NewSocketManager ¶
func NewSocketManager() SocketManager
NewSocketManager Returns a new websocket client manager.
type SocketPool ¶
type SocketPool interface { AllSocketCount() int64 AppendPool(SocketPool) error AppendSocket(WebSocket) error AssignSocketManager(SocketManager) SocketPool Clear() DeletePool(id uuid.UUID) error DeleteSocket(id uuid.UUID) error GetAllSockets() <-chan WebSocket GetID() uuid.UUID GetPool(uuid.UUID) (SocketPool, error) GetSocket(uuid.UUID) (WebSocket, error) Manager() SocketManager PoolsCount() int64 PoolRange() <-chan SocketPool ResetManager() SocketPool SocketsCount() int64 SocketRange() <-chan WebSocket }
func NewSocketPool ¶
func NewSocketPool(socketId uuid.UUID) SocketPool
type SocketResponder ¶
type SocketResponder struct {
// contains filtered or unexported fields
}
func (*SocketResponder) WriteResponse ¶
func (wsr *SocketResponder) WriteResponse(rw http.ResponseWriter, _ runtime.Producer)
WriteResponse Intercepts the response to the client over a websocket.
Also creates a new websocket.
type WebSocket ¶
type WebSocket interface { AssignHandler(handler WebSocketHandlerFunc) WebSocket AssignPool(pool SocketPool) WebSocket Close(code int, reason string) error Handler() WebSocketHandlerFunc GetID() uuid.UUID IsClosed() bool Pool() SocketPool Read() *WebSocketMessage ResetPool() WebSocket PushMessage(message *WebSocketMessage) error Run() error Send(message []byte) error SetError(err error) SetID(id uuid.UUID) WebSocket }
func NewWebSocket ¶
type WebSocketClient ¶
type WebSocketClient struct {
// contains filtered or unexported fields
}
WebSocketClient is a connection from the client.
func (*WebSocketClient) AssignHandler ¶
func (c *WebSocketClient) AssignHandler(handler WebSocketHandlerFunc) WebSocket
func (*WebSocketClient) AssignPool ¶
func (c *WebSocketClient) AssignPool(pool SocketPool) WebSocket
func (*WebSocketClient) Close ¶
func (c *WebSocketClient) Close(code int, reason string) (err error)
func (*WebSocketClient) GetID ¶
func (c *WebSocketClient) GetID() uuid.UUID
func (*WebSocketClient) Handler ¶
func (c *WebSocketClient) Handler() WebSocketHandlerFunc
func (*WebSocketClient) IsClosed ¶
func (c *WebSocketClient) IsClosed() bool
func (*WebSocketClient) Pool ¶
func (c *WebSocketClient) Pool() SocketPool
func (*WebSocketClient) PushMessage ¶
func (c *WebSocketClient) PushMessage(message *WebSocketMessage) error
PushMessage Emulates reading a message from a socket. The message will be put into the received message queue. Handler function will be called.
func (*WebSocketClient) Read ¶
func (c *WebSocketClient) Read() *WebSocketMessage
func (*WebSocketClient) ResetPool ¶
func (c *WebSocketClient) ResetPool() WebSocket
func (*WebSocketClient) Run ¶
func (c *WebSocketClient) Run() error
func (*WebSocketClient) Send ¶
func (c *WebSocketClient) Send(message []byte) (err error)
Send The message will be sent over the websocket.
func (*WebSocketClient) SetError ¶
func (c *WebSocketClient) SetError(err error)
type WebSocketHandlerFunc ¶
type WebSocketMessage ¶
type WebSocketMessage struct { Type string Msg interface{} }
Click to show internal directories.
Click to hide internal directories.