Skip to content

Commit b41b93f

Browse files
committed
add lint action
1 parent 843775b commit b41b93f

File tree

5 files changed

+78
-20
lines changed

5 files changed

+78
-20
lines changed

.github/workflows/lint.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: golangci-lint
2+
on:
3+
push:
4+
pull_request:
5+
jobs:
6+
golangci:
7+
name: lint
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v2
11+
- name: golangci-lint
12+
uses: golangci/golangci-lint-action@v2
13+
with:
14+
# Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version
15+
version: v1.29

.golangci.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
run:
2+
concurrency: 10
3+
tests: true
4+
skip-dirs-use-default: false
5+
timeout: 5m
6+
7+
linters-settings:
8+
golint:
9+
min-confidence: 0.8
10+
gofmt:
11+
simplify: true
12+
13+
linters:
14+
enable:
15+
- gofmt
16+
- gosimple
17+
- govet
18+
- unconvert
19+
- misspell
20+
- goimports
21+
- golint
22+
disable-all: false
23+
fast: false
24+
25+
issues:
26+
exclude-use-default: false

examples/gowebsocket/main.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package main
22

33
import (
4-
"github.com/sacOO7/gowebsocket"
54
"log"
65
"os"
76
"os/signal"
7+
8+
"github.com/sacOO7/gowebsocket"
89
)
910

1011
func main() {
@@ -25,20 +26,19 @@ func main() {
2526
socket.RequestHeader.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36")
2627

2728
socket.OnConnectError = func(err error, socket gowebsocket.Socket) {
28-
log.Fatal("Recieved connect error ", err)
29+
log.Fatal("Received connect error ", err)
2930
}
3031
socket.OnConnected = func(socket gowebsocket.Socket) {
3132
log.Println("Connected to server")
3233
}
3334
socket.OnTextMessage = func(message string, socket gowebsocket.Socket) {
34-
log.Println("Recieved message " + message)
35+
log.Println("Received message " + message)
3536
}
3637
socket.OnPingReceived = func(data string, socket gowebsocket.Socket) {
37-
log.Println("Recieved ping " + data)
38+
log.Println("Received ping " + data)
3839
}
3940
socket.OnDisconnected = func(err error, socket gowebsocket.Socket) {
4041
log.Println("Disconnected from server ")
41-
return
4242
}
4343
socket.Connect()
4444

@@ -48,6 +48,7 @@ func main() {
4848
i++
4949
}
5050

51+
// nolint: gosimple
5152
for {
5253
select {
5354
case <-interrupt:

gowebsocket.go

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,37 @@ package gowebsocket
33
import (
44
"crypto/tls"
55
"errors"
6-
"github.com/gorilla/websocket"
7-
"github.com/sacOO7/go-logger"
6+
"fmt"
87
"net/http"
98
"net/url"
109
"reflect"
1110
"sync"
1211
"time"
12+
13+
"github.com/gorilla/websocket"
14+
logging "github.com/sacOO7/go-logger"
1315
)
1416

15-
type Empty struct {
17+
type empty struct {
1618
}
1719

18-
var logger = logging.GetLogger(reflect.TypeOf(Empty{}).PkgPath()).SetLevel(logging.OFF)
20+
var logger = logging.GetLogger(reflect.TypeOf(empty{}).PkgPath()).SetLevel(logging.OFF)
1921

22+
// EnableLogging enables the logger
2023
func (socket Socket) EnableLogging() {
2124
logger.SetLevel(logging.TRACE)
2225
}
2326

27+
// GetLogger gets the logger object
2428
func (socket Socket) GetLogger() logging.Logger {
2529
return logger
2630
}
2731

32+
// Socket provides a websocket request
2833
type Socket struct {
2934
Conn *websocket.Conn
3035
WebsocketDialer *websocket.Dialer
31-
Url string
36+
URL string
3237
ConnectionOptions ConnectionOptions
3338
RequestHeader http.Header
3439
OnConnected func(socket Socket)
@@ -44,20 +49,23 @@ type Socket struct {
4449
receiveMu *sync.Mutex
4550
}
4651

52+
// ConnectionOptions contains connection options
4753
type ConnectionOptions struct {
4854
UseCompression bool
4955
UseSSL bool
5056
Proxy func(*http.Request) (*url.URL, error)
5157
Subprotocols []string
5258
}
5359

54-
// todo Yet to be done
60+
// ReconnectionOptions provides options for reconnecting to the websocket
61+
// TODO Yet to be done
5562
type ReconnectionOptions struct {
5663
}
5764

65+
// New creates a new websocket for the given url
5866
func New(url string) Socket {
5967
return Socket{
60-
Url: url,
68+
URL: url,
6169
RequestHeader: http.Header{},
6270
ConnectionOptions: ConnectionOptions{
6371
UseCompression: false,
@@ -77,16 +85,17 @@ func (socket *Socket) setConnectionOptions() {
7785
socket.WebsocketDialer.Subprotocols = socket.ConnectionOptions.Subprotocols
7886
}
7987

88+
// Connect connects to the websocket server
8089
func (socket *Socket) Connect() {
8190
var err error
8291
var resp *http.Response
8392
socket.setConnectionOptions()
8493

85-
socket.Conn, resp, err = socket.WebsocketDialer.Dial(socket.Url, socket.RequestHeader)
94+
socket.Conn, resp, err = socket.WebsocketDialer.Dial(socket.URL, socket.RequestHeader)
8695

8796
if err != nil {
8897
logger.Error.Println("Error while connecting to server ", err)
89-
logger.Error.Println("HTTP Response %d status: %s", resp.StatusCode, resp.Status)
98+
logger.Error.Println(fmt.Sprintf("HTTP Response %d status: %s", resp.StatusCode, resp.Status))
9099
socket.IsConnected = false
91100
if socket.OnConnectError != nil {
92101
socket.OnConnectError(err, *socket)
@@ -134,19 +143,22 @@ func (socket *Socket) Connect() {
134143
for {
135144
socket.receiveMu.Lock()
136145
if socket.Timeout != 0 {
137-
socket.Conn.SetReadDeadline(time.Now().Add(socket.Timeout))
146+
err := socket.Conn.SetReadDeadline(time.Now().Add(socket.Timeout))
147+
if err != nil {
148+
logger.Error.Println(err)
149+
}
138150
}
139151
messageType, message, err := socket.Conn.ReadMessage()
140152
socket.receiveMu.Unlock()
141153
if err != nil {
142-
logger.Error.Println("read:", err)
154+
logger.Error.Println(fmt.Sprintf("read: %s", err))
143155
if socket.OnDisconnected != nil {
144156
socket.IsConnected = false
145157
socket.OnDisconnected(err, *socket)
146158
}
147159
return
148160
}
149-
logger.Info.Println("recv: %s", message)
161+
logger.Info.Println(fmt.Sprintf("recv: %s", message))
150162

151163
switch messageType {
152164
case websocket.TextMessage:
@@ -162,6 +174,7 @@ func (socket *Socket) Connect() {
162174
}()
163175
}
164176

177+
// SendText sends a test message to the server
165178
func (socket *Socket) SendText(message string) {
166179
err := socket.send(websocket.TextMessage, []byte(message))
167180
if err != nil {
@@ -170,6 +183,7 @@ func (socket *Socket) SendText(message string) {
170183
}
171184
}
172185

186+
// SendBinary sends a binary message to the websocket
173187
func (socket *Socket) SendBinary(data []byte) {
174188
err := socket.send(websocket.BinaryMessage, data)
175189
if err != nil {
@@ -185,12 +199,13 @@ func (socket *Socket) send(messageType int, data []byte) error {
185199
return err
186200
}
187201

202+
// Close closese the websocket
188203
func (socket *Socket) Close() {
189204
err := socket.send(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, ""))
190205
if err != nil {
191206
logger.Error.Println("write close:", err)
192207
}
193-
socket.Conn.Close()
208+
_ = socket.Conn.Close()
194209
if socket.OnDisconnected != nil {
195210
socket.IsConnected = false
196211
socket.OnDisconnected(err, *socket)

utils.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ import (
66
"net/url"
77
)
88

9-
func BuildProxy(Url string) func(*http.Request) (*url.URL, error) {
10-
uProxy, err := url.Parse(Url)
9+
// BuildProxy creates an http proxy
10+
func BuildProxy(rawURL string) func(*http.Request) (*url.URL, error) {
11+
uProxy, err := url.Parse(rawURL)
1112
if err != nil {
1213
log.Fatal("Error while parsing url ", err)
1314
}

0 commit comments

Comments
 (0)