Commit d42f4cf6 authored by Chunchi Che's avatar Chunchi Che

fix tcp read message eof error

parent d42a6762
...@@ -2,6 +2,7 @@ package main ...@@ -2,6 +2,7 @@ package main
import ( import (
"bufio" "bufio"
"io"
"log" "log"
"net" "net"
"net/http" "net/http"
...@@ -35,8 +36,11 @@ func ygoEndpoint(w http.ResponseWriter, r *http.Request) { ...@@ -35,8 +36,11 @@ func ygoEndpoint(w http.ResponseWriter, r *http.Request) {
tcp, err := net.Dial("tcp", "127.0.0.1"+PROXY_PORT) tcp, err := net.Dial("tcp", "127.0.0.1"+PROXY_PORT)
if err != nil { if err != nil {
log.Fatal("connect tcp server error", err) log.Fatal("connect tcp server error: ", err)
} }
log.Println("Tcp connected")
defer tcp.Close() defer tcp.Close()
wg.Add(2) wg.Add(2)
...@@ -49,7 +53,7 @@ func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) { ...@@ -49,7 +53,7 @@ func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) {
for { for {
messageType, buf, err := ws.ReadMessage() messageType, buf, err := ws.ReadMessage()
if err != nil { if err != nil {
log.Fatal("websocket read message error", err) log.Fatal("websocket read message error: ", err)
break break
} }
...@@ -65,7 +69,7 @@ func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) { ...@@ -65,7 +69,7 @@ func wsProxy(ws *websocket.Conn, tcp *net.Conn, wg *sync.WaitGroup) {
_, 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)
break break
} }
} }
...@@ -80,15 +84,19 @@ func tcpProxy(tcp *net.Conn, ws *websocket.Conn, wg *sync.WaitGroup) { ...@@ -80,15 +84,19 @@ func tcpProxy(tcp *net.Conn, ws *websocket.Conn, wg *sync.WaitGroup) {
_, err := reader.Read(buffer) _, err := reader.Read(buffer)
if err != nil { if err != nil {
log.Fatal("tcp read message error", err) if err == io.EOF {
break continue
}
log.Fatal("tcp read message error: ", err)
break
} }
log.Println("tcp to websocket: " + string(buffer)) log.Println("tcp to websocket: " + string(buffer))
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)
break break
} }
} }
......
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