diff options
Diffstat (limited to 'localclient.go')
-rw-r--r-- | localclient.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/localclient.go b/localclient.go new file mode 100644 index 0000000..c1f5c38 --- /dev/null +++ b/localclient.go | |||
@@ -0,0 +1,31 @@ | |||
1 | package main | ||
2 | |||
3 | import ( | ||
4 | "context" | ||
5 | "log" | ||
6 | "os" | ||
7 | |||
8 | "github.com/gorilla/websocket" | ||
9 | ) | ||
10 | |||
11 | type LocalClientHandler struct { | ||
12 | WebsocketServer string | ||
13 | Context context.Context | ||
14 | } | ||
15 | |||
16 | func (h *LocalClientHandler) Run() { | ||
17 | wsconn, _, err := websocket.DefaultDialer.Dial(h.WebsocketServer, nil) | ||
18 | if err != nil { | ||
19 | log.Println(err) | ||
20 | return | ||
21 | } | ||
22 | defer wsconn.Close() | ||
23 | |||
24 | errc := make(chan error) | ||
25 | ws := &WebsocketReadWriter{wsconn} | ||
26 | |||
27 | go serviceBoth(os.Stdout, ws, errc) | ||
28 | go serviceBoth(ws, os.Stdin, errc) | ||
29 | |||
30 | log.Printf("Closing client connection %s", <-errc) | ||
31 | } | ||