✨ Adds websocket server connection
This commit is contained in:
parent
877df49f80
commit
b7b5e3169b
@ -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
|
||||
|
@ -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=
|
||||
|
@ -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:]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user