Documentation
¶
Index ¶
- Constants
- Variables
- type Channel
- type CloseCode
- type CloseMessage
- type DefaultHandlerTask
- func (h *DefaultHandlerTask) ErrorCaught(ctx channel.HandlerContext, err error)
- func (h *DefaultHandlerTask) WSBinary(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
- func (h *DefaultHandlerTask) WSClose(ctx channel.HandlerContext, message *CloseMessage, params map[string]any)
- func (h *DefaultHandlerTask) WSConnected(ch channel.Channel, req *ghttp.Request, resp *ghttp.Response, ...)
- func (h *DefaultHandlerTask) WSDisconnected(ch channel.Channel, req *ghttp.Request, resp *ghttp.Response, ...)
- func (h *DefaultHandlerTask) WSErrorCaught(ctx channel.HandlerContext, req *ghttp.Request, resp *ghttp.Response, ...)
- func (h *DefaultHandlerTask) WSPing(ctx channel.HandlerContext, message *PingMessage, params map[string]any)
- func (h *DefaultHandlerTask) WSPong(ctx channel.HandlerContext, message *PongMessage, params map[string]any)
- func (h *DefaultHandlerTask) WSText(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
- type DefaultMessage
- type DefaultMessageBuilder
- func (b *DefaultMessageBuilder) Binary(msg []byte) *DefaultMessage
- func (b *DefaultMessageBuilder) Close(msg []byte, closeCode CloseCode) *CloseMessage
- func (b *DefaultMessageBuilder) Ping(msg []byte, deadline *time.Time) *PingMessage
- func (b *DefaultMessageBuilder) Pong(msg []byte, deadline *time.Time) *PongMessage
- func (b *DefaultMessageBuilder) Text(msg string) *DefaultMessage
- type DefaultServerHandlerTask
- type HandlerTask
- type InvokeHandler
- type LogStruct
- type Message
- type MessageBuilder
- type MessageType
- type MockHandlerTask
- func (m *MockHandlerTask) WSBinary(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
- func (m *MockHandlerTask) WSClose(ctx channel.HandlerContext, message *CloseMessage, params map[string]any)
- func (m *MockHandlerTask) WSConnected(ch channel.Channel, req *ghttp.Request, resp *ghttp.Response, ...)
- func (m *MockHandlerTask) WSDisconnected(ch channel.Channel, req *ghttp.Request, resp *ghttp.Response, ...)
- func (m *MockHandlerTask) WSErrorCaught(ctx channel.HandlerContext, req *ghttp.Request, resp *ghttp.Response, ...)
- func (m *MockHandlerTask) WSPing(ctx channel.HandlerContext, message *PingMessage, params map[string]any)
- func (m *MockHandlerTask) WSPong(ctx channel.HandlerContext, message *PongMessage, params map[string]any)
- func (m *MockHandlerTask) WSText(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
- type MockMessage
- type MockMessageBuilder
- func (m *MockMessageBuilder) Binary(msg []byte) *DefaultMessage
- func (m *MockMessageBuilder) Close(msg []byte, closeCode CloseCode) *CloseMessage
- func (m *MockMessageBuilder) Ping(msg []byte, deadline time.Time) *PingMessage
- func (m *MockMessageBuilder) Pong(msg []byte, deadline time.Time) *PongMessage
- func (m *MockMessageBuilder) Text(msg string) *DefaultMessage
- type MockServerHandlerTask
- func (m *MockServerHandlerTask) WSBinary(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
- func (m *MockServerHandlerTask) WSClose(ctx channel.HandlerContext, message *CloseMessage, params map[string]any)
- func (m *MockServerHandlerTask) WSConnected(ch channel.Channel, req *ghttp.Request, resp *ghttp.Response, ...)
- func (m *MockServerHandlerTask) WSDisconnected(ch channel.Channel, req *ghttp.Request, resp *ghttp.Response, ...)
- func (m *MockServerHandlerTask) WSErrorCaught(ctx channel.HandlerContext, req *ghttp.Request, resp *ghttp.Response, ...)
- func (m *MockServerHandlerTask) WSPing(ctx channel.HandlerContext, message *PingMessage, params map[string]any)
- func (m *MockServerHandlerTask) WSPong(ctx channel.HandlerContext, message *PongMessage, params map[string]any)
- func (m *MockServerHandlerTask) WSText(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
- func (m *MockServerHandlerTask) WSUpgrade(req *ghttp.Request, resp *ghttp.Response, params map[string]any) bool
- type MockWebSocketChannel
- type PingMessage
- type PongMessage
- type ServerHandlerTask
- type UpgradeProcessor
- type WSCustomConnectConfig
Constants ¶
const ( TextMessageType MessageType = 1 BinaryMessageType MessageType = 2 CloseMessageType MessageType = 8 PingMessageType MessageType = 9 PongMessageType MessageType = 10 CloseNormalClosure CloseCode = 1000 CloseGoingAway CloseCode = 1001 CloseProtocolError CloseCode = 1002 CloseUnsupportedData CloseCode = 1003 CloseNoStatusReceived CloseCode = 1005 CloseAbnormalClosure CloseCode = 1006 CloseInvalidFramePayloadData CloseCode = 1007 ClosePolicyViolation CloseCode = 1008 CloseMessageTooBig CloseCode = 1009 CloseMandatoryExtension CloseCode = 1010 CloseInternalServerErr CloseCode = 1011 CloseServiceRestart CloseCode = 1012 CloseTryAgainLater CloseCode = 1013 CloseTLSHandshake CloseCode = 1015 )
const LogType = "websocket"
Variables ¶
var ErrEmpty = fmt.Errorf("wrong object type")
var ErrWrongObjectType = fmt.Errorf("wrong object type")
var ParamCheckOrigin channel.ParamKey = "check_origin"
var ParamWSReadLimit channel.ParamKey = "ws_read_limit"
Functions ¶
This section is empty.
Types ¶
type Channel ¶
type Channel struct {
*channel.DefaultNetChannel
Response *gtp.Response
Request *gtp.Request
// contains filtered or unexported fields
}
func (*Channel) BootstrapPreInit ¶
func (c *Channel) BootstrapPreInit()
func (*Channel) UnsafeConnect ¶
func (*Channel) UnsafeRead ¶
func (*Channel) UnsafeWrite ¶
type CloseMessage ¶
type CloseMessage struct {
DefaultMessage
CloseCode CloseCode `json:"close_code,omitempty"`
}
func (*CloseMessage) Encoded ¶
func (m *CloseMessage) Encoded() []byte
type DefaultHandlerTask ¶
type DefaultHandlerTask struct {
ghttp.DefaultHandlerTask
Builder DefaultMessageBuilder
}
func (*DefaultHandlerTask) ErrorCaught ¶
func (h *DefaultHandlerTask) ErrorCaught(ctx channel.HandlerContext, err error)
func (*DefaultHandlerTask) WSBinary ¶
func (h *DefaultHandlerTask) WSBinary(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
func (*DefaultHandlerTask) WSClose ¶
func (h *DefaultHandlerTask) WSClose(ctx channel.HandlerContext, message *CloseMessage, params map[string]any)
func (*DefaultHandlerTask) WSConnected ¶
func (*DefaultHandlerTask) WSDisconnected ¶
func (*DefaultHandlerTask) WSErrorCaught ¶
func (h *DefaultHandlerTask) WSErrorCaught(ctx channel.HandlerContext, req *ghttp.Request, resp *ghttp.Response, msg Message, err error)
func (*DefaultHandlerTask) WSPing ¶
func (h *DefaultHandlerTask) WSPing(ctx channel.HandlerContext, message *PingMessage, params map[string]any)
func (*DefaultHandlerTask) WSPong ¶
func (h *DefaultHandlerTask) WSPong(ctx channel.HandlerContext, message *PongMessage, params map[string]any)
func (*DefaultHandlerTask) WSText ¶
func (h *DefaultHandlerTask) WSText(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
type DefaultMessage ¶
type DefaultMessage struct {
MessageType MessageType `json:"message_type,omitempty"`
Message []byte `json:"message,omitempty"`
Dead *time.Time `json:"dead,omitempty"`
}
func (*DefaultMessage) Deadline ¶
func (m *DefaultMessage) Deadline() *time.Time
func (*DefaultMessage) Encoded ¶
func (m *DefaultMessage) Encoded() []byte
func (*DefaultMessage) StringMessage ¶
func (m *DefaultMessage) StringMessage() string
func (*DefaultMessage) Type ¶
func (m *DefaultMessage) Type() MessageType
type DefaultMessageBuilder ¶
type DefaultMessageBuilder struct{}
func (*DefaultMessageBuilder) Binary ¶
func (b *DefaultMessageBuilder) Binary(msg []byte) *DefaultMessage
func (*DefaultMessageBuilder) Close ¶
func (b *DefaultMessageBuilder) Close(msg []byte, closeCode CloseCode) *CloseMessage
func (*DefaultMessageBuilder) Ping ¶
func (b *DefaultMessageBuilder) Ping(msg []byte, deadline *time.Time) *PingMessage
func (*DefaultMessageBuilder) Pong ¶
func (b *DefaultMessageBuilder) Pong(msg []byte, deadline *time.Time) *PongMessage
func (*DefaultMessageBuilder) Text ¶
func (b *DefaultMessageBuilder) Text(msg string) *DefaultMessage
type DefaultServerHandlerTask ¶
type DefaultServerHandlerTask struct {
DefaultHandlerTask
}
type HandlerTask ¶
type HandlerTask interface {
WSPing(ctx channel.HandlerContext, message *PingMessage, params map[string]any)
WSPong(ctx channel.HandlerContext, message *PongMessage, params map[string]any)
WSClose(ctx channel.HandlerContext, message *CloseMessage, params map[string]any)
WSBinary(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
WSText(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
WSConnected(ch channel.Channel, req *ghttp.Request, resp *ghttp.Response, params map[string]any)
WSDisconnected(ch channel.Channel, req *ghttp.Request, resp *ghttp.Response, params map[string]any)
WSErrorCaught(ctx channel.HandlerContext, req *ghttp.Request, resp *ghttp.Response, msg Message, err error)
}
type InvokeHandler ¶
type InvokeHandler struct {
channel.DefaultHandler
DefaultHandlerTask
// contains filtered or unexported fields
}
func NewInvokeHandler ¶
func NewInvokeHandler(task HandlerTask, params map[string]any) *InvokeHandler
func (*InvokeHandler) Active ¶
func (h *InvokeHandler) Active(ctx channel.HandlerContext)
func (*InvokeHandler) ErrorCaught ¶
func (h *InvokeHandler) ErrorCaught(ctx channel.HandlerContext, err error)
func (*InvokeHandler) Inactive ¶
func (h *InvokeHandler) Inactive(ctx channel.HandlerContext)
func (*InvokeHandler) Read ¶
func (h *InvokeHandler) Read(ctx channel.HandlerContext, obj any)
type LogStruct ¶
type LogStruct struct {
LogType string `json:"log_type,omitempty"`
RemoteAddr net.Addr `json:"remote_addr,omitempty"`
LocalAddr net.Addr `json:"local_addr,omitempty"`
RequestURI string `json:"request_uri,omitempty"`
ChannelID string `json:"channel_id,omitempty"`
TrackID string `json:"trace_id,omitempty"`
Message Message `json:"message,omitempty"`
Error error `json:"error,omitempty"`
}
type MessageBuilder ¶
type MessageBuilder interface {
Text(msg string) *DefaultMessage
Binary(msg []byte) *DefaultMessage
Close(msg []byte, closeCode CloseCode) *CloseMessage
Ping(msg []byte, deadline time.Time) *PingMessage
Pong(msg []byte, deadline time.Time) *PongMessage
}
type MessageType ¶
type MessageType int
type MockHandlerTask ¶ added in v1.9.0
MockHandlerTask is a mock implementation of HandlerTask interface
func NewMockHandlerTask ¶ added in v1.9.0
func NewMockHandlerTask() *MockHandlerTask
NewMockHandlerTask creates a new MockHandlerTask instance
func (*MockHandlerTask) WSBinary ¶ added in v1.9.0
func (m *MockHandlerTask) WSBinary(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
WSBinary mocks the WSBinary method
func (*MockHandlerTask) WSClose ¶ added in v1.9.0
func (m *MockHandlerTask) WSClose(ctx channel.HandlerContext, message *CloseMessage, params map[string]any)
WSClose mocks the WSClose method
func (*MockHandlerTask) WSConnected ¶ added in v1.9.0
func (m *MockHandlerTask) WSConnected(ch channel.Channel, req *ghttp.Request, resp *ghttp.Response, params map[string]any)
WSConnected mocks the WSConnected method
func (*MockHandlerTask) WSDisconnected ¶ added in v1.9.0
func (m *MockHandlerTask) WSDisconnected(ch channel.Channel, req *ghttp.Request, resp *ghttp.Response, params map[string]any)
WSDisconnected mocks the WSDisconnected method
func (*MockHandlerTask) WSErrorCaught ¶ added in v1.9.0
func (m *MockHandlerTask) WSErrorCaught(ctx channel.HandlerContext, req *ghttp.Request, resp *ghttp.Response, msg Message, err error)
WSErrorCaught mocks the WSErrorCaught method
func (*MockHandlerTask) WSPing ¶ added in v1.9.0
func (m *MockHandlerTask) WSPing(ctx channel.HandlerContext, message *PingMessage, params map[string]any)
WSPing mocks the WSPing method
func (*MockHandlerTask) WSPong ¶ added in v1.9.0
func (m *MockHandlerTask) WSPong(ctx channel.HandlerContext, message *PongMessage, params map[string]any)
WSPong mocks the WSPong method
func (*MockHandlerTask) WSText ¶ added in v1.9.0
func (m *MockHandlerTask) WSText(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
WSText mocks the WSText method
type MockMessage ¶ added in v1.9.0
MockMessage is a mock implementation of Message interface It provides complete testify/mock integration for testing WebSocket message behaviors
func NewMockMessage ¶ added in v1.9.0
func NewMockMessage() *MockMessage
NewMockMessage creates a new MockMessage instance
func (*MockMessage) Deadline ¶ added in v1.9.0
func (m *MockMessage) Deadline() *time.Time
Deadline returns the message deadline
func (*MockMessage) Encoded ¶ added in v1.9.0
func (m *MockMessage) Encoded() []byte
Encoded returns the encoded message bytes
func (*MockMessage) Type ¶ added in v1.9.0
func (m *MockMessage) Type() MessageType
Type returns the message type
type MockMessageBuilder ¶ added in v1.9.0
MockMessageBuilder is a mock implementation of MessageBuilder interface It provides complete testify/mock integration for testing WebSocket message building behaviors
func NewMockMessageBuilder ¶ added in v1.9.0
func NewMockMessageBuilder() *MockMessageBuilder
NewMockMessageBuilder creates a new MockMessageBuilder instance
func (*MockMessageBuilder) Binary ¶ added in v1.9.0
func (m *MockMessageBuilder) Binary(msg []byte) *DefaultMessage
Binary creates a binary message
func (*MockMessageBuilder) Close ¶ added in v1.9.0
func (m *MockMessageBuilder) Close(msg []byte, closeCode CloseCode) *CloseMessage
Close creates a close message
func (*MockMessageBuilder) Ping ¶ added in v1.9.0
func (m *MockMessageBuilder) Ping(msg []byte, deadline time.Time) *PingMessage
Ping creates a ping message
func (*MockMessageBuilder) Pong ¶ added in v1.9.0
func (m *MockMessageBuilder) Pong(msg []byte, deadline time.Time) *PongMessage
Pong creates a pong message
func (*MockMessageBuilder) Text ¶ added in v1.9.0
func (m *MockMessageBuilder) Text(msg string) *DefaultMessage
Text creates a text message
type MockServerHandlerTask ¶ added in v1.9.0
MockServerHandlerTask is a mock implementation of ServerHandlerTask interface
func NewMockServerHandlerTask ¶ added in v1.9.0
func NewMockServerHandlerTask() *MockServerHandlerTask
NewMockServerHandlerTask creates a new MockServerHandlerTask instance
func (*MockServerHandlerTask) WSBinary ¶ added in v1.9.0
func (m *MockServerHandlerTask) WSBinary(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
func (*MockServerHandlerTask) WSClose ¶ added in v1.9.0
func (m *MockServerHandlerTask) WSClose(ctx channel.HandlerContext, message *CloseMessage, params map[string]any)
func (*MockServerHandlerTask) WSConnected ¶ added in v1.9.0
func (*MockServerHandlerTask) WSDisconnected ¶ added in v1.9.0
func (*MockServerHandlerTask) WSErrorCaught ¶ added in v1.9.0
func (m *MockServerHandlerTask) WSErrorCaught(ctx channel.HandlerContext, req *ghttp.Request, resp *ghttp.Response, msg Message, err error)
func (*MockServerHandlerTask) WSPing ¶ added in v1.9.0
func (m *MockServerHandlerTask) WSPing(ctx channel.HandlerContext, message *PingMessage, params map[string]any)
All HandlerTask methods are embedded and need to be implemented
func (*MockServerHandlerTask) WSPong ¶ added in v1.9.0
func (m *MockServerHandlerTask) WSPong(ctx channel.HandlerContext, message *PongMessage, params map[string]any)
func (*MockServerHandlerTask) WSText ¶ added in v1.9.0
func (m *MockServerHandlerTask) WSText(ctx channel.HandlerContext, message *DefaultMessage, params map[string]any)
type MockWebSocketChannel ¶ added in v1.9.0
type MockWebSocketChannel struct {
channel.MockNetChannel
Response *ghttp.Response
Request *ghttp.Request
// contains filtered or unexported fields
}
MockWebSocketChannel is a mock implementation of WebSocket Channel It embeds MockNetChannel to provide proper mock inheritance
func NewMockWebSocketChannel ¶ added in v1.9.0
func NewMockWebSocketChannel() *MockWebSocketChannel
NewMockWebSocketChannel creates a new MockWebSocketChannel instance
func (*MockWebSocketChannel) BootstrapPreInit ¶ added in v1.9.0
func (m *MockWebSocketChannel) BootstrapPreInit()
BootstrapPreInit mocks the BootstrapPreInit method
func (*MockWebSocketChannel) Init ¶ added in v1.9.0
func (m *MockWebSocketChannel) Init() channel.Channel
Init mocks the Init method
func (*MockWebSocketChannel) UnsafeRead ¶ added in v1.9.0
func (m *MockWebSocketChannel) UnsafeRead() (any, error)
UnsafeRead mocks the UnsafeRead method for WebSocket message reading
func (*MockWebSocketChannel) UnsafeWrite ¶ added in v1.9.0
func (m *MockWebSocketChannel) UnsafeWrite(obj any) error
UnsafeWrite mocks the UnsafeWrite method with WebSocket message handling
type PingMessage ¶
type PingMessage struct {
DefaultMessage
}
type PongMessage ¶
type PongMessage PingMessage
type ServerHandlerTask ¶
type UpgradeProcessor ¶
type UpgradeProcessor struct {
channel.DefaultHandler
UpgradeCheckFunc func(req *gtp.Request, resp *gtp.Response, params map[string]any) bool
// contains filtered or unexported fields
}
func (*UpgradeProcessor) Added ¶
func (h *UpgradeProcessor) Added(ctx channel.HandlerContext)
func (*UpgradeProcessor) Read ¶
func (h *UpgradeProcessor) Read(ctx channel.HandlerContext, obj any)
type WSCustomConnectConfig ¶
func (*WSCustomConnectConfig) Network ¶
func (c *WSCustomConnectConfig) Network() string
func (*WSCustomConnectConfig) String ¶
func (c *WSCustomConnectConfig) String() string