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

@ -3,6 +3,8 @@ module svitan.dev/keys/client
go 1.24.1
require (
github.com/robotn/gohook v0.42.0 // indirect
github.com/vcaesar/keycode v0.10.1 // indirect
github.com/gorilla/websocket v1.5.3
github.com/robotn/gohook v0.42.0
)
require github.com/vcaesar/keycode v0.10.1 // indirect

View File

@ -1,4 +1,8 @@
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/robotn/gohook v0.42.0 h1:y241yJtt1JvObVwoS2kXJ5OsoIsOoVkp/SPqmCAUhJg=
github.com/robotn/gohook v0.42.0/go.mod h1:PYgH0f1EaxhCvNSqIVTfo+SIUh1MrM2Uhe2w7SvFJDE=
github.com/vcaesar/keycode v0.10.1 h1:0DesGmMAPWpYTCYddOFiCMKCDKgNnwiQa2QXindVUHw=
github.com/vcaesar/keycode v0.10.1/go.mod h1:JNlY7xbKsh+LAGfY2j4M3znVrGEm5W1R8s/Uv6BJcfQ=
github.com/vcaesar/tt v0.20.1 h1:D/jUeeVCNbq3ad8M7hhtB3J9x5RZ6I1n1eZ0BJp7M+4=
github.com/vcaesar/tt v0.20.1/go.mod h1:cH2+AwGAJm19Wa6xvEa+0r+sXDJBT0QgNQey6mwqLeU=

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