Commit b0b2950d authored by Chunchi Che's avatar Chunchi Che

update DarkNeos

parent 88729bb8
package darkneos
import (
"errors"
"github.com/sktt1ryze/ygopro-proxy/DarkNeos/ygoprobuffer"
"github.com/sktt1ryze/ygopro-proxy/DarkNeos/ygopropb"
)
const FILLING_TOKEN uint16 = 0xcccc;
const (
ProtobufToRawBuf = 1
RawBufToProtobuf = 2
)
func Transform(src []byte, tranformType int) ([]byte, error) {
if tranformType == ProtobufToRawBuf {
return make([]byte, 0), nil
} else if tranformType == RawBufToProtobuf {
// todo
return make([]byte, 0), nil
} else {
return nil, errors.New("Unknown tranformType")
}
}
func TransformPlayerInfo(pb ygopropb.CtosPlayerInfo) ygoprobuffer.CtosPlayerInfo {
name := [ygoprobuffer.PLAYER_NAME_MAX_LEN]uint16 {}
for i := range name {
name[i] = FILLING_TOKEN
}
info_buf := ygoprobuffer.CtosPlayerInfo {
Name: name,
}
return info_buf
}
package ygoprobuffer
const PLAYER_NAME_MAX_LEN int = 20
type CtosPlayerInfo struct {
Name [PLAYER_NAME_MAX_LEN]uint16
}
......@@ -2,4 +2,8 @@ module github.com/sktt1ryze/ygopro-proxy
go 1.17
require github.com/gorilla/websocket v1.5.0 // indirect
require (
github.com/golang/protobuf v1.5.2 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
google.golang.org/protobuf v1.28.1 // indirect
)
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
......@@ -9,6 +9,7 @@ import (
"sync"
"github.com/gorilla/websocket"
darkneos "github.com/sktt1ryze/ygopro-proxy/DarkNeos"
)
const TARGET_PORT = ":8000"
......@@ -51,7 +52,6 @@ func ygoEndpoint(w http.ResponseWriter, r *http.Request) {
func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) {
writer := bufio.NewWriter(*tcp)
buffer := make([]byte, BUFFER_SIZE)
for {
messageType, buf, err := ws.ReadMessage()
......@@ -67,7 +67,12 @@ func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) {
log.Println("websocket to tcp: " + string(buf))
// todo: convert pb to buffer
buffer, err := darkneos.Transform(buf, darkneos.ProtobufToRawBuf)
if err != nil {
log.Fatal(err)
break
}
_, err = writer.Write(buffer)
if err != nil {
log.Fatal("websocket send message error: ", err)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment