2017-05-31 99 views
0

WS库接收到消息时,我将结束与代码1008使用大猩猩FormatCloseMessage客户端收到错误代码

cm := websocket.FormatCloseMessage(websocket.ClosePolicyViolation, msg) 
if err := c.conn.WriteMessage(websocket.CloseMessage, cm); err != nil { 
    log.Error(err) 
} 
err = c.conn.Close() 

一个WS连接然而,它说的代码是1006。什么我做错了什么?

+1

问题中的代码将消息写入网络。为了调试,在调用关闭之前添加'time.Sleep(time.Second)'。也许这可能会让我们对消息的去向有所了解。 –

+0

明天我会试试看。问题是正确的字符串消息到达客户端。 –

+0

'cm'的内容按原样写入网络。如果客户端收到'cm'的消息,那么不正确的代码可能是客户端问题。 –

回答

0

由于发送消息后连接立即关闭,握手未完成。解决这个问题的一个方法是添加sleep调用。尽管正确地执行关闭握手会更好。