diff --git a/business/jxstore/event/event_tcp.go b/business/jxstore/event/event_tcp.go index abdbd5395..f1512fd66 100644 --- a/business/jxstore/event/event_tcp.go +++ b/business/jxstore/event/event_tcp.go @@ -41,59 +41,59 @@ func (t *TcpClient) handleConn(c net.Conn) { globals.SugarLogger.Debugf("conn is nil") return } - //defer c.Close() + defer c.Close() buffer := make([]byte, 1024) - //for { - n, err := c.Read(buffer) - if err != nil { - if err == io.EOF { - fmt.Println("connection close") - } else { - fmt.Println("ReadString err", err) - } - return - } - //也可能是查状态的 - if err = json.Unmarshal(buffer[:n], &printStatus); err == nil { - fmt.Println("handleConn msg: ", string(buffer[:n])) - if printStatus != nil { - status := t.getPrintStatus(printStatus.PrintNo) - c.Write([]byte(utils.Int2Str(status))) - c.Close() - } - } - //看是心跳还是打印返回 - data := hex.EncodeToString(buffer[:n]) - //证明是心跳 - if strings.Contains(data, heartText) { - globals.SugarLogger.Debugf("handleConn heart: %v", data) - printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8]) - printNo = string(printNoData) - globals.SugarLogger.Debugf("handleConn printno :[%v]", printNo) - status := printStatus2JxStatus(data[len(data)-8 : len(data)-6]) - if t.Clients[printNo] == nil { - t.addConn(c, printNo, status) - t.buildCallBackMap(printNo) - t.buildMsgMap(printNo) - t.HandleTcpMessages(printNo) - t.doPrint(printNo) - if status == printerStatusOnline { - //t.printFail() + for { + n, err := c.Read(buffer) + if err != nil { + if err == io.EOF { + fmt.Println("connection close") + } else { + fmt.Println("ReadString err", err) } - changePrinterStatus(printNo, status) - t.HandleCheckTcpHeart(printNo) + return } - if t.getPrintStatus(printNo) != status { - t.setPrintStatus(printNo, status) - changePrinterStatus(printNo, status) + //也可能是查状态的 + if err = json.Unmarshal(buffer[:n], &printStatus); err == nil { + fmt.Println("handleConn msg: ", string(buffer[:n])) + if printStatus != nil { + status := t.getPrintStatus(printStatus.PrintNo) + c.Write([]byte(utils.Int2Str(status))) + c.Close() + } + } + //看是心跳还是打印返回 + data := hex.EncodeToString(buffer[:n]) + //证明是心跳 + if strings.Contains(data, heartText) { + globals.SugarLogger.Debugf("handleConn heart: %v", data) + printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8]) + printNo = string(printNoData) + globals.SugarLogger.Debugf("handleConn printno :[%v]", printNo) + status := printStatus2JxStatus(data[len(data)-8 : len(data)-6]) + if t.Clients[printNo] == nil { + t.addConn(c, printNo, status) + t.buildCallBackMap(printNo) + t.buildMsgMap(printNo) + t.HandleTcpMessages(printNo) + t.doPrint(printNo) + if status == printerStatusOnline { + //t.printFail() + } + changePrinterStatus(printNo, status) + t.HandleCheckTcpHeart(printNo) + } + if t.getPrintStatus(printNo) != status { + t.setPrintStatus(printNo, status) + changePrinterStatus(printNo, status) + } + globals.SugarLogger.Debugf("handleConn print model %v", utils.Format4Output(t.Clients[printNo], true)) + } else if strings.Contains(data, printText) { + globals.SugarLogger.Debugf("handleConn print callback: %v", data) + _, printNo = getCallbackMsgInfo(data) + t.addCallbackChan(printNo, data) } - globals.SugarLogger.Debugf("handleConn print model %v", utils.Format4Output(t.Clients[printNo], true)) - } else if strings.Contains(data, printText) { - globals.SugarLogger.Debugf("handleConn print callback: %v", data) - _, printNo = getCallbackMsgInfo(data) - t.addCallbackChan(printNo, data) } - //} } func (t *TcpClient) printFail() (err error) {