diff --git a/config.go b/config.go index 3f7f880..81ebd05 100644 --- a/config.go +++ b/config.go @@ -2,7 +2,7 @@ package melody import "time" -// Melody configuration. +// Config melody configuration struct. type Config struct { WriteWait time.Duration // Milliseconds until write times out. PongWait time.Duration // Timeout for waiting on pong. diff --git a/melody.go b/melody.go index 849fc3b..3bf8ea0 100644 --- a/melody.go +++ b/melody.go @@ -10,6 +10,7 @@ type handleErrorFunc func(*Session, error) type handleSessionFunc func(*Session) type filterFunc func(*Session) bool +// Melody implements a websocket manager. type Melody struct { Config *Config Upgrader *websocket.Upgrader @@ -22,7 +23,7 @@ type Melody struct { hub *hub } -// Returns a new melody instance with default Upgrader and Config. +// New creates a new melody instance with default Upgrader and Config. func New() *Melody { upgrader := &websocket.Upgrader{ ReadBufferSize: 1024, @@ -46,37 +47,37 @@ func New() *Melody { } } -// Fires fn when a session connects. +// HandleConnect fires fn when a session connects. func (m *Melody) HandleConnect(fn func(*Session)) { m.connectHandler = fn } -// Fires fn when a session disconnects. +// HandleDisconnect fires fn when a session disconnects. func (m *Melody) HandleDisconnect(fn func(*Session)) { m.disconnectHandler = fn } -// Fires fn when a pong is received from a session. +// HandlePong fires fn when a pong is received from a session. func (m *Melody) HandlePong(fn func(*Session)) { m.pongHandler = fn } -// Callback when a text message comes in. +// HandleMessage fires fn when a text message comes in. func (m *Melody) HandleMessage(fn func(*Session, []byte)) { m.messageHandler = fn } -// Callback when a binary message comes in. +// HandleMessageBinary fires fn when a binary message comes in. func (m *Melody) HandleMessageBinary(fn func(*Session, []byte)) { m.messageHandlerBinary = fn } -// Fires when a session has an error. +// HandleError fires fn when a session has an error. func (m *Melody) HandleError(fn func(*Session, error)) { m.errorHandler = fn } -// Handles http requests and upgrades them to websocket connections. +// HandleRequest upgrades http requests to websocket connections and dispatches them to be handled by the melody instance. func (m *Melody) HandleRequest(w http.ResponseWriter, r *http.Request) { conn, err := m.Upgrader.Upgrade(w, r, nil) @@ -107,45 +108,45 @@ func (m *Melody) HandleRequest(w http.ResponseWriter, r *http.Request) { go m.disconnectHandler(session) } -// Broadcasts a text message to all sessions. +// Broadcast broadcasts a text message to all sessions. func (m *Melody) Broadcast(msg []byte) { message := &envelope{t: websocket.TextMessage, msg: msg} m.hub.broadcast <- message } -// Broadcasts a text message to all sessions that fn returns true for. +// BroadcastFilter broadcasts a text message to all sessions that fn returns true for. func (m *Melody) BroadcastFilter(msg []byte, fn func(*Session) bool) { message := &envelope{t: websocket.TextMessage, msg: msg, filter: fn} m.hub.broadcast <- message } -// Broadcasts a text message to all sessions except session s. +// BroadcastOthers broadcasts a text message to all sessions except session s. func (m *Melody) BroadcastOthers(msg []byte, s *Session) { m.BroadcastFilter(msg, func(q *Session) bool { return s != q }) } -// Broadcasts a binary message to all sessions. +// BroadcastBinary broadcasts a binary message to all sessions. func (m *Melody) BroadcastBinary(msg []byte) { message := &envelope{t: websocket.BinaryMessage, msg: msg} m.hub.broadcast <- message } -// Broadcasts a binary message to all sessions that fn returns true for. +// BroadcastBinaryFilter broadcasts a binary message to all sessions that fn returns true for. func (m *Melody) BroadcastBinaryFilter(msg []byte, fn func(*Session) bool) { message := &envelope{t: websocket.BinaryMessage, msg: msg, filter: fn} m.hub.broadcast <- message } -// Broadcasts a binary message to all sessions except session s. +// BroadcastBinaryOthers broadcasts a binary message to all sessions except session s. func (m *Melody) BroadcastBinaryOthers(msg []byte, s *Session) { m.BroadcastBinaryFilter(msg, func(q *Session) bool { return s != q }) } -// Closes the melody instance and all connected sessions. +// Close closes the melody instance and all connected sessions. func (m *Melody) Close() { m.hub.exit <- true } diff --git a/session.go b/session.go index f262364..8645d5b 100644 --- a/session.go +++ b/session.go @@ -7,7 +7,7 @@ import ( "time" ) -// A melody session. +// Session is wrapper around websocket connections. type Session struct { Request *http.Request conn *websocket.Conn @@ -104,17 +104,17 @@ func (s *Session) readPump() { } } -// Write message to session. +// Write writes message to session. func (s *Session) Write(msg []byte) { s.writeMessage(&envelope{t: websocket.TextMessage, msg: msg}) } -// Write binary message to session. +// WriteBinary writes a binary message to session. func (s *Session) WriteBinary(msg []byte) { s.writeMessage(&envelope{t: websocket.BinaryMessage, msg: msg}) } -// Close session. +// Close closes a session. func (s *Session) Close() { s.writeMessage(&envelope{t: websocket.CloseMessage, msg: []byte{}}) }