aa
This commit is contained in:
@@ -25,7 +25,6 @@ func ListenTcp() {
|
||||
}
|
||||
globals.SugarLogger.Debugf("begin listenTcp port 8000......")
|
||||
go HandleTcpMessages()
|
||||
go t.HandleCallback()
|
||||
go t.HandleCheckTcpHeart()
|
||||
go t.doPrint2(printMsgChan)
|
||||
//go t.doPrint(printMsgChanFail)
|
||||
@@ -118,9 +117,9 @@ func (t *TcpClient) handleConn(c net.Conn) {
|
||||
} else if strings.Contains(data, printText) {
|
||||
globals.SugarLogger.Debugf("handleConn print callback: %v", data)
|
||||
_, printNo = getCallbackMsgInfo(data)
|
||||
if backChan, ok := t.CallBackMap.Load(printNo); ok {
|
||||
backChan.(chan string) <- data
|
||||
}
|
||||
t.RLock()
|
||||
t.CallBackMap[printNo] <- data
|
||||
t.RUnlock()
|
||||
//printMsgCallbackChan <- printMsgCallbackMap
|
||||
//changePrintMsg(data)
|
||||
}
|
||||
@@ -298,8 +297,14 @@ func (t *TcpClient) doPrint2(printMsgChan chan *model.PrintMsg) (err error) {
|
||||
globals.SugarLogger.Debugf("handleTcpMessages success, data: %v", hex.EncodeToString(data))
|
||||
//printMsg.Status = printMsgAlreadySend
|
||||
//dao.UpdateEntity(db, printMsg, "Status")
|
||||
//if t.CallBackMap[printMsg.PrintNo] != nil {
|
||||
//}
|
||||
if t.CallBackMap[printMsg.PrintNo] != nil {
|
||||
select {
|
||||
case dataStr := <-t.CallBackMap[printMsg.PrintNo]:
|
||||
a, b := getCallbackMsgInfo(dataStr)
|
||||
t.changePrintMsg(dataStr, a, b)
|
||||
case <-timeoutChan:
|
||||
}
|
||||
}
|
||||
//dataStr := <-printMsgCallbackChan
|
||||
}
|
||||
}
|
||||
@@ -309,17 +314,6 @@ func (t *TcpClient) doPrint2(printMsgChan chan *model.PrintMsg) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
func (t *TcpClient) HandleCallback() {
|
||||
for {
|
||||
t.CallBackMap.Range(func(key, value interface{}) bool {
|
||||
dataStr := <-value.(chan string)
|
||||
a, b := getCallbackMsgInfo(dataStr)
|
||||
t.changePrintMsg(dataStr, a, b)
|
||||
return true
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func (t *TcpClient) HandleCheckTcpHeart() {
|
||||
for {
|
||||
keys := []string{}
|
||||
|
||||
@@ -114,7 +114,7 @@ type PrintInfo struct {
|
||||
//连接的客户端,吧每个客户端都放进来
|
||||
type TcpClient struct {
|
||||
Clients map[string]*PrintInfo
|
||||
CallBackMap sync.Map
|
||||
CallBackMap map[string]chan string
|
||||
*sync.RWMutex
|
||||
}
|
||||
|
||||
@@ -145,8 +145,11 @@ func (t *TcpClient) addConn(c net.Conn, key string, status int) {
|
||||
}
|
||||
|
||||
func (t *TcpClient) buildCallBackMap(key string) {
|
||||
t.Lock()
|
||||
defer t.Unlock()
|
||||
dataChan := make(chan string, 1024)
|
||||
t.CallBackMap.Store(key, dataChan)
|
||||
t.CallBackMap[key] = dataChan
|
||||
timeoutChan <- 1
|
||||
}
|
||||
|
||||
func (t *TcpClient) getPrintStatus(key string) int {
|
||||
@@ -192,8 +195,8 @@ func (t *TcpClient) setPrintStatus(key string, status int) {
|
||||
|
||||
func NewTcpClient() *TcpClient {
|
||||
t := &TcpClient{
|
||||
Clients: make(map[string]*PrintInfo),
|
||||
//CallBackMap: new(sync.Map),
|
||||
Clients: make(map[string]*PrintInfo),
|
||||
CallBackMap: make(map[string]chan string),
|
||||
}
|
||||
t.RWMutex = new(sync.RWMutex)
|
||||
return t
|
||||
|
||||
Reference in New Issue
Block a user