diff --git a/Device/FLXNetworkController/FlxNetworkCmdSender.go b/Device/FLXNetworkController/FlxNetworkCmdSender.go index baf8c8b..2c91ca1 100644 --- a/Device/FLXNetworkController/FlxNetworkCmdSender.go +++ b/Device/FLXNetworkController/FlxNetworkCmdSender.go @@ -62,12 +62,12 @@ func (para *FLXNetworkCmdSender) InitPara() { // log.AddFilter("stdout", log4go.DEBUG, log4go.NewConsoleLogWriter()) // } -type CustomMessage struct { +type Message struct { Content []byte } // 实现tao.Message接口方法 -func (m CustomMessage) Serialize() ([]byte, error) { +func (m Message) Serialize() ([]byte, error) { defer func() { if r := recover(); r != nil { @@ -78,7 +78,7 @@ func (m CustomMessage) Serialize() ([]byte, error) { return m.Content, nil // 直接返回原始字节 } -func (m CustomMessage) MessageNumber() int32 { +func (m Message) MessageNumber() int32 { defer func() { if r := recover(); r != nil { @@ -176,6 +176,7 @@ func ConnectToServer() { MPerIDNetID[v] = strid } } + IsConnect = true for i := 0; i < len(UnSendToServerData); { AsClicent.Write(UnSendToServerData[i]) @@ -199,15 +200,40 @@ func ConnectToServer() { onMessage := tao.OnMessageOption(func(msg tao.Message, c tao.WriteCloser) { Remote_IP := strings.Split((c.(*tao.ClientConn)).Name(), ":")[0] IsConnect = true - fmt.Println(msg.(CustomMessage).Content, Remote_IP) + fmt.Println(msg.(Message).Content, Remote_IP) }) AsClicent = tao.NewClientConn(0, c, onConnect, onError, onClose, onMessage) + AsClicent.Start() return // 连接成功后退出循环 } } +const ( + // ChatMessage is the message number of chat message. + ChatMessage int32 = 1 +) + +// DeserializeMessage deserializes bytes into Message. +func DeserializeMessage(data []byte) (message tao.Message, err error) { + + defer func() { + if r := recover(); r != nil { + log.Error("DeserializeMessage:", r) + } + }() + + if data == nil { + return nil, tao.ErrNilData + } + content := (data) + msg := Message{ + Content: content, + } + return msg, nil +} + func StartTCP() { defer func() { @@ -218,6 +244,7 @@ func StartTCP() { MIPNetID = make(map[string]int64) MPerIDNetID = make(map[string]int64) + tao.Register(ChatMessage, DeserializeMessage, nil) go ConnectToServer() // //TCP连接 @@ -255,8 +282,8 @@ func StartTCP() { // onMessage := tao.OnMessageOption(func(msg tao.Message, c tao.WriteCloser) { // Remote_IP := strings.Split((c.(*tao.ClientConn)).Name(), ":")[0] - // // AsClicent_DatagramReceived(Remote_IP, (c.(*tao.ClientConn)).NetID(), msg.(CustomMessage).Content) - // fmt.Println(msg.(CustomMessage).Content, Remote_IP) + // // AsClicent_DatagramReceived(Remote_IP, (c.(*tao.ClientConn)).NetID(), msg.(Message).Content) + // fmt.Println(msg.(Message).Content, Remote_IP) // }) // AsClicent = tao.NewClientConn(0, c, onConnect, onError, onClose, onMessage) // AsClicent.Start() @@ -288,7 +315,7 @@ func CTcpServerStart() { var SendLock sync.RWMutex -var UnSendToServerData = make([]CustomMessage, 0) +var UnSendToServerData = make([]Message, 0) // / 发送命令 // / 命令内容 @@ -311,53 +338,53 @@ func (para *FLXNetworkCmdSender) SendToServer(dataMsg []byte) { } // dataMsg = FullCheckSum(dataMsg) - if para.IsSendToServer { - if para.IsConnect { - - // _, err := para.CurrentSocket.Write([]byte{0x7e}) - // if err != nil { - // para.IsConnect = false // 立即标记为断开 - // } - - // _, err := para.CurrentSocket.Write(dataMsg) - // if err != nil { - // fmt.Println("tcp发送失败", err.Error()) - // } - // fmt.Println(dataMsg) - if IsConnect { - SendLock.Lock() - - // 伪代码示例:需确保遍历所有连接 - - msg := CustomMessage{Content: dataMsg} - // CTcpServer.Broadcast(msg) - - error := AsClicent.Write(msg) - if error != nil { - if !Common.Contain(UnSendToServerData, msg) { - UnSendToServerData = append(UnSendToServerData, msg) - } - log.Error("SendToServer发送卡号失败:", msg) - } + // if para.IsSendToServer { + if para.IsConnect { + + // _, err := para.CurrentSocket.Write([]byte{0x7e}) + // if err != nil { + // para.IsConnect = false // 立即标记为断开 + // } + + // _, err := para.CurrentSocket.Write(dataMsg) + // if err != nil { + // fmt.Println("tcp发送失败", err.Error()) + // } + // fmt.Println(dataMsg) + if IsConnect { + SendLock.Lock() + + // 伪代码示例:需确保遍历所有连接 + + msg := Message{Content: dataMsg} + // CTcpServer.Broadcast(msg) - SendLock.Unlock() - } else { - msg := CustomMessage{Content: dataMsg} + error := AsClicent.Write(msg) + if error != nil { if !Common.Contain(UnSendToServerData, msg) { UnSendToServerData = append(UnSendToServerData, msg) } log.Error("SendToServer发送卡号失败:", msg) } + SendLock.Unlock() } else { - - fmt.Printf("服务器没有连接!") - if para.TryConnect(0) { - para.CurrentSocket.Write(dataMsg) + msg := Message{Content: dataMsg} + if !Common.Contain(UnSendToServerData, msg) { + UnSendToServerData = append(UnSendToServerData, msg) } + log.Error("SendToServer发送卡号失败:", msg) + } + + } else { + fmt.Printf("服务器没有连接!") + if para.TryConnect(0) { + para.CurrentSocket.Write(dataMsg) } + } + // } if !para.IsSendToBackUpServer { return } diff --git a/Device/FLXNetworkController/FlxNetworkComController.go b/Device/FLXNetworkController/FlxNetworkComController.go index f9ca88c..f35acba 100644 --- a/Device/FLXNetworkController/FlxNetworkComController.go +++ b/Device/FLXNetworkController/FlxNetworkComController.go @@ -175,7 +175,7 @@ func (para *FlxNetworkComController) StartTCP(Contype int) bool { if para.SocketConnected() { para.IsOpened = true para.Sender.CurrentSocket = para.NetSocket - // para.Reader.CurrentSocket = para.NetSocket + para.Reader.CurrentSocket = para.NetSocket return true } else { @@ -231,6 +231,7 @@ func (para *FlxNetworkComController) TimerCallbackHandler() { } }() for para.HandlerBack { + fmt.Println("循环执行中") para.Event_SeatInfos = para.Event_SeatInfos[0:0] comPacket := <-para.ComPackets @@ -286,6 +287,30 @@ func (para *FlxNetworkComController) SocketConnected() bool { fmt.Println("关闭原有tcp连接") para.NetSocket.Close() } + // if para.ServerIP == "" { + // para.InitFlxNetControl() + // } + + // lp, _ := Common.ExternalIP() + // para.LocalIP = lp + // para.ServerPort = 9667 + // cfig := Common.LoadConfig() + // para.ServerIP = cfig.SeverData.ServerIP + // para.BackUpServerIP = cfig.SeverData.BackUpServerIP + // para.ComPackets = make(chan Compacket, 600) + // para.Sender.InitPara() + + // para.Sender.ReConnectSocket = para.Sender_ReConnectSocket + // // var Reader FlxNetCCUCmdReader + // para.Reader.InitPara() + // para.Reader.InitCoon(para.NetSocket, para.BackUpNetSocket) + // para.Reader.InvokeOnReviceData = para.Reader_OnDataReciveEventHandler + + // para.StartUDP() + + // para.InvokeDeviceEventHandler = OnDeviceEventHandlers + + // serveradd := "192.168.8.108" + ":" + strconv.Itoa(9667) serveradd := para.ServerIP + ":" + strconv.Itoa(para.ServerPort) tcpAddr, err := net.ResolveTCPAddr("tcp4", serveradd) if err != nil { diff --git a/main.go b/main.go index 34b5cc4..2ff9c71 100644 --- a/main.go +++ b/main.go @@ -1263,7 +1263,7 @@ func CongressStart(IsStart bool, AgID string, ServerIP string) { FLXNetConnect.StartTCP(2) } else { if ServerIP == CFLXCfig.SeverData.ServerIP { - FLXNetConnect.StartTCP(0) + // FLXNetConnect.StartTCP(0) } else if ServerIP == CFLXCfig.SeverData.BackUpServerIP { FLXNetConnect.StartTCP(1) } @@ -1310,7 +1310,7 @@ func DisposeContent() { localcache.AllPerson = nil localcache.Allperpiccontent = make([]map[string]interface{}, 0) localcache.LastCardTime = make(map[string]time.Time, 0) - FLXNetworkController.UnSendToServerData = make([]FLXNetworkController.CustomMessage, 0) + FLXNetworkController.UnSendToServerData = make([]FLXNetworkController.Message, 0) } // 开始报到 @@ -1516,6 +1516,17 @@ func OnDeviceEventHandler(eventSource FLXDevice.EventArgSource, eventType FLXDev localcache.OnChangeProcess() CheckInStart() } + + //测试 开始会议后直接开始报到 看看 TAO能不能接收到 + // if localcache.CurrentAgenda.Ag_Name == "" { + // GetAgenda(CurrentSelectAgendaID) + // } + // localcache.CurrentScreenSessionStatus = Common.SessionStatus_StartReport + // CrrentCongressStatus = 1 + // OpenDevice() + // CheckInStart() + // localcache.OnChangeProcess() + } //结束会议