This commit is contained in:
suyl
2021-08-02 14:45:10 +08:00
parent f35d9d69ed
commit 051539f936

View File

@@ -43,57 +43,57 @@ func (t *TcpClient) handleConn(c net.Conn) {
} }
defer c.Close() defer c.Close()
buffer := make([]byte, 1024) buffer := make([]byte, 1024)
for { //for {
n, err := c.Read(buffer) n, err := c.Read(buffer)
if err != nil { if err != nil {
if err == io.EOF { if err == io.EOF {
fmt.Println("connection close") fmt.Println("connection close")
} else { } else {
fmt.Println("ReadString err", err) fmt.Println("ReadString err", err)
}
return
} }
//也可能是查状态的 return
if err = json.Unmarshal(buffer[:n], &printStatus); err == nil { }
fmt.Println("handleConn msg: ", string(buffer[:n])) //也可能是查状态的
if printStatus != nil { if err = json.Unmarshal(buffer[:n], &printStatus); err == nil {
status := t.getPrintStatus(printStatus.PrintNo) fmt.Println("handleConn msg: ", string(buffer[:n]))
c.Write([]byte(utils.Int2Str(status))) if printStatus != nil {
break 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)
} }
} }
//看是心跳还是打印返回
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)
}
//}
} }
func (t *TcpClient) printFail() (err error) { func (t *TcpClient) printFail() (err error) {