forked from schwartzmx/gremtune
-
Notifications
You must be signed in to change notification settings - Fork 6
/
websocketOption.go
46 lines (39 loc) · 1.29 KB
/
websocketOption.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package gremcos
import (
"time"
)
// optionWebsocket is the struct for defining configuration for WebSocket dialer
type optionWebsocket func(*websocket)
//SetTimeout sets the dial handshake timeout
func SetTimeout(timeout time.Duration) optionWebsocket {
return func(ws *websocket) {
ws.timeout = timeout
}
}
//SetWritingWait sets the time for waiting that writing occur
func SetWritingWait(wait time.Duration) optionWebsocket {
return func(ws *websocket) {
ws.writingWait = wait
}
}
//SetReadingWait sets the time for waiting that reading occur
func SetReadingWait(wait time.Duration) optionWebsocket {
return func(ws *websocket) {
ws.readingWait = wait
}
}
//SetBufferSize sets the read/write buffer size
func SetBufferSize(readBufferSize int, writeBufferSize int) optionWebsocket {
return func(ws *websocket) {
ws.readBufSize = readBufferSize
ws.writeBufSize = writeBufferSize
}
}
// websocketDialerFactoryFun exchange/ set the factory function used to create the dialer which
// is then used to open the websocket connection.
// This function is not exported on purpose, it should only used for injection and mocking in tests!!
func websocketDialerFactoryFun(wsDialerFactory websocketDialerFactory) optionWebsocket {
return func(ws *websocket) {
ws.wsDialerFactory = wsDialerFactory
}
}