Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-proxy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
ygopro-proxy
Commits
b0b2950d
Commit
b0b2950d
authored
Sep 11, 2022
by
Chunchi Che
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update DarkNeos
parent
88729bb8
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
68 additions
and
3 deletions
+68
-3
DarkNeos/transform.go
DarkNeos/transform.go
+40
-0
DarkNeos/ygoprobuffer/ctos.go
DarkNeos/ygoprobuffer/ctos.go
+7
-0
go.mod
go.mod
+5
-1
go.sum
go.sum
+9
-0
proxy.go
proxy.go
+7
-2
No files found.
DarkNeos/transform.go
0 → 100644
View file @
b0b2950d
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
}
DarkNeos/ygoprobuffer/ctos.go
0 → 100644
View file @
b0b2950d
package
ygoprobuffer
const
PLAYER_NAME_MAX_LEN
int
=
20
type
CtosPlayerInfo
struct
{
Name
[
PLAYER_NAME_MAX_LEN
]
uint16
}
go.mod
View file @
b0b2950d
...
...
@@ -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
)
go.sum
View file @
b0b2950d
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=
proxy.go
View file @
b0b2950d
...
...
@@ -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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment