Browse Source

golint

master
Ola Holmström 9 years ago
parent
commit
5a3ec43235
  1. 2
      config.go
  2. 31
      melody.go
  3. 8
      session.go

2
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.

31
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
}

8
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{}})
}
Loading…
Cancel
Save