Commit 536a02d7 authored by haoyanbin's avatar haoyanbin

1

parent c83313ae
......@@ -191,12 +191,7 @@ Loop:
c.onError(errors.New("接收数据解析失败!!连接ID:" + c.Id + "原因:" + err.Error()))
break Loop
}
if msg.ProcedureType == 9 {
c.setPing()
}
if msg.ProcedureType == 10 {
c.setPong()
}
SaveMsg(msg)
//rabbitMQ.PublishSimple(string(message))
c.readMessage(msg)
......@@ -318,7 +313,7 @@ Loop:
}
if p == 1 {
c.conn.SetWriteDeadline(time.Now().Add(writeWait))
if err := c.conn.WriteMessage(websocket.TextMessage, SerializeJson(&SendMsg{ProcedureType: 9})); err != nil {
if err := c.conn.WriteMessage(websocket.PingMessage, nil); err != nil {
fmt.Println(err)
c.onError(errors.New("连接ID:" + c.Id + "关闭写入IO对象出错,连接中断" + err.Error()))
goto Loop1
......@@ -330,7 +325,7 @@ Loop:
}
if p == 1 {
c.conn.SetWriteDeadline(time.Now().Add(writeWait))
if err := c.conn.WriteMessage(websocket.TextMessage, SerializeJson(&SendMsg{ProcedureType: 10})); err != nil {
if err := c.conn.WriteMessage(websocket.PongMessage, nil); err != nil {
fmt.Println(err)
c.onError(errors.New("回复客户端PongMessage出现异常:" + err.Error()))
goto Loop1
......@@ -342,24 +337,6 @@ Loop1:
c.close()
}
func (c *Client) setPong() {
c.conn.SetReadDeadline(time.Now().Add(pongWait))
fmt.Println("收到pong---", c.Id)
c.pingPeriodTicker.Reset(pingPeriod)
c.onPong()
}
func (c *Client) setPing() {
c.conn.SetReadDeadline(time.Now().Add(pongWait))
c.pingPeriodTicker.Reset(pingPeriod)
fmt.Println("收到ping---", c.Id)
c.recvPing <- 1
//if err := c.conn.WriteMessage(websocket.PongMessage, nil); err != nil {
// c.onError(errors.New("回复客户端PongMessage出现异常:"+err.Error()))
//}
c.onPing()
}
func (c *Client) send(msg *SendMsg) {
timeout := time.NewTimer(time.Millisecond * 800)
defer timeout.Stop()
......
......@@ -85,25 +85,25 @@ func (c *Client) OpenClient(w http.ResponseWriter, r *http.Request, head http.He
c.conn.SetReadDeadline(time.Now().Add(pongWait))
c.pingPeriodTicker = time.NewTimer(pingPeriod)
c.closeTicker = time.NewTimer(closeWait)
//c.conn.SetPongHandler(func(str string) error {
// c.conn.SetReadDeadline(time.Now().Add(pongWait))
// fmt.Println("收到pong---", c.Id, str)
// c.pingPeriodTicker.Reset(pingPeriod)
// c.onPong()
// return nil
//})
//
//c.conn.SetPingHandler(func(str string) error {
// c.conn.SetReadDeadline(time.Now().Add(pongWait))
// c.pingPeriodTicker.Reset(pingPeriod)
// fmt.Println("收到ping---", c.Id, str)
// c.recvPing <- 1
// //if err := c.conn.WriteMessage(websocket.PongMessage, nil); err != nil {
// // c.onError(errors.New("回复客户端PongMessage出现异常:"+err.Error()))
// //}
// c.onPing()
// return nil
//})
c.conn.SetPongHandler(func(str string) error {
c.conn.SetReadDeadline(time.Now().Add(pongWait))
fmt.Println("收到pong---", c.Id, str)
c.pingPeriodTicker.Reset(pingPeriod)
c.onPong()
return nil
})
c.conn.SetPingHandler(func(str string) error {
c.conn.SetReadDeadline(time.Now().Add(pongWait))
c.pingPeriodTicker.Reset(pingPeriod)
fmt.Println("收到ping---", c.Id, str)
c.recvPing <- 1
//if err := c.conn.WriteMessage(websocket.PongMessage, nil); err != nil {
// c.onError(errors.New("回复客户端PongMessage出现异常:"+err.Error()))
//}
c.onPing()
return nil
})
c.conn.SetCloseHandler(func(code int, str string) error {
//收到客户端连接关闭时的回调
......
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