Adds websocket server connection

This commit is contained in:
Daniel Svitan
2025-03-22 13:51:40 +01:00
parent 877df49f80
commit b7b5e3169b
3 changed files with 53 additions and 4 deletions

View File

@@ -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:]
}
}
}