Commit 88729bb8 authored by Chunchi Che's avatar Chunchi Che

move reader, writer and buffer out of loop

parent dba084d0
...@@ -50,6 +50,9 @@ func ygoEndpoint(w http.ResponseWriter, r *http.Request) { ...@@ -50,6 +50,9 @@ func ygoEndpoint(w http.ResponseWriter, r *http.Request) {
} }
func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) { func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) {
writer := bufio.NewWriter(*tcp)
buffer := make([]byte, BUFFER_SIZE)
for { for {
messageType, buf, err := ws.ReadMessage() messageType, buf, err := ws.ReadMessage()
if err != nil { if err != nil {
...@@ -64,9 +67,7 @@ func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) { ...@@ -64,9 +67,7 @@ func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) {
log.Println("websocket to tcp: " + string(buf)) log.Println("websocket to tcp: " + string(buf))
writer := bufio.NewWriter(*tcp) // todo: convert pb to buffer
buffer := make([]byte, BUFFER_SIZE)
_, err = writer.Write(buffer) _, err = writer.Write(buffer)
if err != nil { if err != nil {
log.Fatal("websocket send message error: ", err) log.Fatal("websocket send message error: ", err)
...@@ -78,10 +79,10 @@ func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) { ...@@ -78,10 +79,10 @@ func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) {
} }
func tcpProxy(tcp *net.Conn, ws *websocket.Conn, wg *sync.WaitGroup) { func tcpProxy(tcp *net.Conn, ws *websocket.Conn, wg *sync.WaitGroup) {
for { reader := bufio.NewReader(*tcp)
reader := bufio.NewReader(*tcp) buffer := make([]byte, BUFFER_SIZE)
buffer := make([]byte, BUFFER_SIZE)
for {
_, err := reader.Read(buffer) _, err := reader.Read(buffer)
if err != nil { if err != nil {
if err == io.EOF { if err == io.EOF {
...@@ -94,6 +95,7 @@ func tcpProxy(tcp *net.Conn, ws *websocket.Conn, wg *sync.WaitGroup) { ...@@ -94,6 +95,7 @@ func tcpProxy(tcp *net.Conn, ws *websocket.Conn, wg *sync.WaitGroup) {
log.Println("tcp to websocket: " + string(buffer)) log.Println("tcp to websocket: " + string(buffer))
// todo: convert buffer to pb
err = ws.WriteMessage(websocket.TextMessage, buffer) // temporary TextMessage, should be BinaryMessage in ygopro err = ws.WriteMessage(websocket.TextMessage, buffer) // temporary TextMessage, should be BinaryMessage in ygopro
if err != nil { if err != nil {
log.Fatal("tcp send message error: ", err) log.Fatal("tcp 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