golint
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
+4
-4
@@ -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{}})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user