split HandleSentMessage into text and binary methods
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
* Return errors for some exposed methods.
|
* Return errors for some exposed methods.
|
||||||
* Add `HandleRequestWithKeys`.
|
* Add `HandleRequestWithKeys`.
|
||||||
|
* Add `HandleSentMessage` and `HandleSentMessageBinary`.
|
||||||
|
|
||||||
## 2017-01-20
|
## 2017-01-20
|
||||||
|
|
||||||
|
|||||||
@@ -14,15 +14,17 @@ type filterFunc func(*Session) bool
|
|||||||
|
|
||||||
// Melody implements a websocket manager.
|
// Melody implements a websocket manager.
|
||||||
type Melody struct {
|
type Melody struct {
|
||||||
Config *Config
|
Config *Config
|
||||||
Upgrader *websocket.Upgrader
|
Upgrader *websocket.Upgrader
|
||||||
messageHandler handleMessageFunc
|
messageHandler handleMessageFunc
|
||||||
messageHandlerBinary handleMessageFunc
|
messageHandlerBinary handleMessageFunc
|
||||||
errorHandler handleErrorFunc
|
messageSentHandler handleMessageFunc
|
||||||
connectHandler handleSessionFunc
|
messageSentHandlerBinary handleMessageFunc
|
||||||
disconnectHandler handleSessionFunc
|
errorHandler handleErrorFunc
|
||||||
pongHandler handleSessionFunc
|
connectHandler handleSessionFunc
|
||||||
hub *hub
|
disconnectHandler handleSessionFunc
|
||||||
|
pongHandler handleSessionFunc
|
||||||
|
hub *hub
|
||||||
}
|
}
|
||||||
|
|
||||||
// New creates a new melody instance with default Upgrader and Config.
|
// New creates a new melody instance with default Upgrader and Config.
|
||||||
@@ -41,6 +43,7 @@ func New() *Melody {
|
|||||||
Upgrader: upgrader,
|
Upgrader: upgrader,
|
||||||
messageHandler: func(*Session, []byte) {},
|
messageHandler: func(*Session, []byte) {},
|
||||||
messageHandlerBinary: func(*Session, []byte) {},
|
messageHandlerBinary: func(*Session, []byte) {},
|
||||||
|
messageSentHandler: func(*Session, []byte) {},
|
||||||
errorHandler: func(*Session, error) {},
|
errorHandler: func(*Session, error) {},
|
||||||
connectHandler: func(*Session) {},
|
connectHandler: func(*Session) {},
|
||||||
disconnectHandler: func(*Session) {},
|
disconnectHandler: func(*Session) {},
|
||||||
@@ -74,6 +77,16 @@ func (m *Melody) HandleMessageBinary(fn func(*Session, []byte)) {
|
|||||||
m.messageHandlerBinary = fn
|
m.messageHandlerBinary = fn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HandleSentMessage fires fn when a text message is successfully sent.
|
||||||
|
func (m *Melody) HandleSentMessage(fn func(*Session, []byte)) {
|
||||||
|
m.messageSentHandler = fn
|
||||||
|
}
|
||||||
|
|
||||||
|
// HandleSentMessageBinary fires fn when a binary message is successfully sent.
|
||||||
|
func (m *Melody) HandleSentMessageBinary(fn func(*Session, []byte)) {
|
||||||
|
m.messageSentHandler = fn
|
||||||
|
}
|
||||||
|
|
||||||
// HandleError fires fn when a session has an error.
|
// HandleError fires fn when a session has an error.
|
||||||
func (m *Melody) HandleError(fn func(*Session, error)) {
|
func (m *Melody) HandleError(fn func(*Session, error)) {
|
||||||
m.errorHandler = fn
|
m.errorHandler = fn
|
||||||
|
|||||||
@@ -91,6 +91,13 @@ loop:
|
|||||||
break loop
|
break loop
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if msg.t == websocket.TextMessage {
|
||||||
|
s.melody.messageSentHandler(s, msg.msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
if msg.t == websocket.BinaryMessage {
|
||||||
|
s.melody.messageSentHandlerBinary(s, msg.msg)
|
||||||
|
}
|
||||||
case <-ticker.C:
|
case <-ticker.C:
|
||||||
s.ping()
|
s.ping()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user