我正在尝试为 GlassFish 实现一个 websocket 代理服务器。如果我尝试连接多个客户端,则会出现错误:
ReadMessage 失败:websocket:关闭 1007 非法 UTF-8 序列。
我确信 GlassFish 服务器发送了正确的数据,因为同一台服务器与另一个使用 node.js 实现的代理服务器一起正常工作。
func GlassFishHandler(conn *websocket.Conn){
defer conn.Close()
conn.SetReadDeadline(time.Now().Add(1000 * time.Second))
conn.SetWriteDeadline(time.Now().Add(1000 * time.Second))
fmt.Println("WS-GOLANG PROXY SERVER: Connected to GlassFish")
for {
messageType, reader, err := conn.NextReader()
if err != nil {
fmt.Println("ReadMessage Failed: ", err) // <- error here
} else {
message, err := ioutil.ReadAll(reader)
if (err == nil && messageType == websocket.TextMessage){
var dat map[string]interface{}
if err := json.Unmarshal(message, &dat); err != nil {
panic(err)
}
// get client destination id
clientId := dat["target"].(string)
fmt.Println("Msg from GlassFish for Client: ", dat);
// pass through
clients[clientId].WriteMessage(websocket.TextMessage, message)
}
}
}
}
慕虎7371278
相关分类