codec, err := sh.gwRPCSH.GetCodec(soc.Context().GetAttribute("contentType").(string)) if nil != err { log.Printf("RPC Handle: %v", err) doneChan <- struct{}{} return } var socConn *cwf.SocketConn ctx := context.WithValue(context.Background(), oogw.ServletSocketKey, rpcSoc) // conn.SetPongHandler(func(string) error { c.conn.SetReadDeadline(time.Now().Add(pongWait)); return nil }) for { if socConn, err = rpcSoc.WaitRequest(); nil != err { doneChan <- struct{}{} return } // // "git.loafle.net/commons_go/websocket_fasthttp/websocket" // switch socConn.MessageType { // case websocket.TextMessage: // case websocket.BinaryMessage: // } if err = gateway.Handle(ctx, sh.gwRPCSH, codec, socConn, socConn); nil != err { if server.IsClientDisconnect(err) { doneChan <- struct{}{} return } log.Printf("RPC: %v", err) } if err = socConn.Close(); nil != err { doneChan <- struct{}{} return } select { case <-stopChan: return default: } }