This commit is contained in:
邹宗楠
2023-03-16 15:24:21 +08:00
parent b4bac4ea17
commit a0c528d299
4 changed files with 23 additions and 58 deletions

View File

@@ -76,6 +76,7 @@ func (t *TcpClient) handleConn(c net.Conn) error {
c.Write([]byte("ok")) c.Write([]byte("ok"))
return err return err
} }
data = "1e001a020001513132303232303931353030313935390000008a"
//证明是心跳 //证明是心跳
if strings.Contains(data, heartText) || strings.Contains(data, heartTextNew) { if strings.Contains(data, heartText) || strings.Contains(data, heartTextNew) {
printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8]) printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8])
@@ -91,6 +92,7 @@ func (t *TcpClient) handleConn(c net.Conn) error {
if t.getClients(printNo) == nil { if t.getClients(printNo) == nil {
t.addConn(c, printNo, status) t.addConn(c, printNo, status)
t.buildAllMap(printNo) t.buildAllMap(printNo)
t.TimeoutMap[printNo] <- true
t.HandleTcpMessages(printNo) t.HandleTcpMessages(printNo)
t.doPrint(printNo) t.doPrint(printNo)
if status == printerStatusOnline { if status == printerStatusOnline {
@@ -170,6 +172,7 @@ func (t *TcpClient) changePrintMsg(data string, orderNo int64, printNo string) (
} }
func (t *TcpClient) HandleTcpMessages(printNo string) { func (t *TcpClient) HandleTcpMessages(printNo string) {
fmt.Println("============:", t.getTimeOut(printNo))
var ( var (
db = dao.GetDB() db = dao.GetDB()
offset, pageSize = 0, 10 offset, pageSize = 0, 10
@@ -318,6 +321,7 @@ func (t *TcpClient) HandleCheckTcpHeart(key string) {
globals.SugarLogger.Debugf("HandleCheckTcpHeart begin key: %s", key) globals.SugarLogger.Debugf("HandleCheckTcpHeart begin key: %s", key)
go func() { go func() {
for { for {
fmt.Println("============:", t.getTimeOut(key))
select { select {
case <-t.TimeoutMap[key]: case <-t.TimeoutMap[key]:
t.getClients(key).C.Close() t.getClients(key).C.Close()

View File

@@ -192,7 +192,7 @@ func (t *TcpClient) buildAllMap(key string) {
defer t.Unlock() defer t.Unlock()
t.MsgMap[key] = make(chan *model.PrintMsg, 1024) t.MsgMap[key] = make(chan *model.PrintMsg, 1024)
t.CallBackMap[key] = make(chan string, 1024) t.CallBackMap[key] = make(chan string, 1024)
t.TimeoutMap[key] = make(chan bool, 64) t.TimeoutMap[key] = make(chan bool, 1)
} }
func (t *TcpClient) getPrintStatus(key string) int { func (t *TcpClient) getPrintStatus(key string) int {

View File

@@ -5,7 +5,6 @@ import (
"fmt" "fmt"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"net"
"strconv" "strconv"
"strings" "strings"
"testing" "testing"
@@ -83,36 +82,3 @@ func TestTen216(t *testing.T) {
fmt.Println(gg) fmt.Println(gg)
fmt.Println(kk) fmt.Println(kk)
} }
func TestBuildTest(s *testing.T) {
l, err := net.Listen("tcp", ":8000")
if err != nil {
fmt.Println("listen error:", err)
return
}
for {
c, err := l.Accept()
if err != nil {
fmt.Println("accept error:", err)
break
}
go func() {
t := NewTcpClient()
if err := t.HandleConnTest(c); err != nil {
t = nil
return
}
}()
}
}
func (t *TcpClient) HandleConnTest(c net.Conn) error {
c.Write([]byte(""))
t.addConn(c, "1111111", 1)
t.buildAllMap("1111111")
t.HandleTcpMessages("1111111")
t.doPrint("1111111")
changePrinterStatus("1111111", 1)
t.HandleCheckTcpHeart("1111111")
return nil
}

41
main.go
View File

@@ -9,18 +9,13 @@ import (
"os" "os"
"time" "time"
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxstore/cms" "git.rosy.net.cn/jx-callback/business/jxstore/cms"
"git.rosy.net.cn/jx-callback/business/jxstore/misc" "git.rosy.net.cn/jx-callback/business/jxstore/misc"
"git.rosy.net.cn/jx-callback/business/jxutils/tasks"
beego "github.com/astaxie/beego/server/web" beego "github.com/astaxie/beego/server/web"
// 导入缺省订单调度器 // 导入缺省订单调度器
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/jx-callback/globals/beegodb" "git.rosy.net.cn/jx-callback/globals/beegodb"
_ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/alipay" _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/alipay"
@@ -102,21 +97,21 @@ func main() {
if !checkCmdFlags() { if !checkCmdFlags() {
Init() Init()
// 延时的原因是等回调准备好 // 延时的原因是等回调准备好
if globals.IsMainProductEnv() || beego.BConfig.RunMode == "beta" { //if globals.IsMainProductEnv() || beego.BConfig.RunMode == "beta" {
utils.AfterFuncWithRecover(2*time.Second, func() { // utils.AfterFuncWithRecover(2*time.Second, func() {
if err := tasks.RefreshDingDingToken(); err != nil { // if err := tasks.RefreshDingDingToken(); err != nil {
globals.SugarLogger.Errorf("RefreshDingDingToken failed with error:%s", err) // globals.SugarLogger.Errorf("RefreshDingDingToken failed with error:%s", err)
return // return
} // }
if globals.IsProductEnv() { // if globals.IsProductEnv() {
api.DingDingAPI.DeleteCallback() // api.DingDingAPI.DeleteCallback()
if err := api.DingDingAPI.RegisterCallback([]string{dingdingapi.CBTagUserAddOrg, dingdingapi.CBTagUserModifyOrg, dingdingapi.CBTagUserLeaveOrg}, beego.AppConfig.DefaultString("dingdingCallbackToken", ""), beego.AppConfig.DefaultString("dingdingCallbackAESKey", ""), beego.AppConfig.DefaultString("dingdingCallbackURL", "")); err != nil { // if err := api.DingDingAPI.RegisterCallback([]string{dingdingapi.CBTagUserAddOrg, dingdingapi.CBTagUserModifyOrg, dingdingapi.CBTagUserLeaveOrg}, beego.AppConfig.DefaultString("dingdingCallbackToken", ""), beego.AppConfig.DefaultString("dingdingCallbackAESKey", ""), beego.AppConfig.DefaultString("dingdingCallbackURL", "")); err != nil {
globals.SugarLogger.Warnf("dingding RegisterCallback failed with error:%v", err) // globals.SugarLogger.Warnf("dingding RegisterCallback failed with error:%v", err)
} // }
} // }
}) // })
cms.ResetJobTimers() // cms.ResetJobTimers()
} //}
if beego.BConfig.RunMode != "prod" { if beego.BConfig.RunMode != "prod" {
beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
@@ -129,9 +124,9 @@ func main() {
} }
}() }()
if globals.IsPrintEnv() { //if globals.IsPrintEnv() {
event.ListenTcp() event.ListenTcp()
} //}
beego.Run() beego.Run()
} }
} }