summaryrefslogtreecommitdiff
path: root/client.go
diff options
context:
space:
mode:
Diffstat (limited to 'client.go')
-rw-r--r--client.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/client.go b/client.go
new file mode 100644
index 0000000..00455ab
--- /dev/null
+++ b/client.go
@@ -0,0 +1,45 @@
1package main
2
3import (
4 "log"
5 "net"
6
7 "github.com/gorilla/websocket"
8)
9
10type ClientHandler struct {
11 SocketListenOn string
12 WebsocketServer string
13}
14
15func (h *ClientHandler) ServiceConnection(proxyconn net.Conn) {
16 defer proxyconn.Close()
17
18 wsconn, _, err := websocket.DefaultDialer.Dial(h.WebsocketServer, nil)
19 if err != nil {
20 log.Println(err)
21 return
22 }
23 defer wsconn.Close()
24
25 log.Println("Connected to server")
26
27 serviceBoth(wsconn, proxyconn)
28}
29
30func (h *ClientHandler) Run() {
31 listener, err := net.Listen("tcp", h.SocketListenOn)
32 if err != nil {
33 log.Printf("error: Run: %s", err)
34 return
35 }
36
37 for {
38 conn, err := listener.Accept()
39 if err != nil {
40 log.Printf("error: Run: %s", err)
41 continue
42 }
43 go h.ServiceConnection(conn)
44 }
45}