只留一个tao的tcp链接

main
wangbin 3 months ago
parent 073e743060
commit 9768bef9b4

@ -62,12 +62,12 @@ func (para *FLXNetworkCmdSender) InitPara() {
// log.AddFilter("stdout", log4go.DEBUG, log4go.NewConsoleLogWriter()) // log.AddFilter("stdout", log4go.DEBUG, log4go.NewConsoleLogWriter())
// } // }
type CustomMessage struct { type Message struct {
Content []byte Content []byte
} }
// 实现tao.Message接口方法 // 实现tao.Message接口方法
func (m CustomMessage) Serialize() ([]byte, error) { func (m Message) Serialize() ([]byte, error) {
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {
@ -78,7 +78,7 @@ func (m CustomMessage) Serialize() ([]byte, error) {
return m.Content, nil // 直接返回原始字节 return m.Content, nil // 直接返回原始字节
} }
func (m CustomMessage) MessageNumber() int32 { func (m Message) MessageNumber() int32 {
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {
@ -176,6 +176,7 @@ func ConnectToServer() {
MPerIDNetID[v] = strid MPerIDNetID[v] = strid
} }
} }
IsConnect = true
for i := 0; i < len(UnSendToServerData); { for i := 0; i < len(UnSendToServerData); {
AsClicent.Write(UnSendToServerData[i]) AsClicent.Write(UnSendToServerData[i])
@ -199,15 +200,40 @@ func ConnectToServer() {
onMessage := tao.OnMessageOption(func(msg tao.Message, c tao.WriteCloser) { onMessage := tao.OnMessageOption(func(msg tao.Message, c tao.WriteCloser) {
Remote_IP := strings.Split((c.(*tao.ClientConn)).Name(), ":")[0] Remote_IP := strings.Split((c.(*tao.ClientConn)).Name(), ":")[0]
IsConnect = true 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 = tao.NewClientConn(0, c, onConnect, onError, onClose, onMessage)
AsClicent.Start() AsClicent.Start()
return // 连接成功后退出循环 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() { func StartTCP() {
defer func() { defer func() {
@ -218,6 +244,7 @@ func StartTCP() {
MIPNetID = make(map[string]int64) MIPNetID = make(map[string]int64)
MPerIDNetID = make(map[string]int64) MPerIDNetID = make(map[string]int64)
tao.Register(ChatMessage, DeserializeMessage, nil)
go ConnectToServer() go ConnectToServer()
// //TCP连接 // //TCP连接
@ -255,8 +282,8 @@ func StartTCP() {
// onMessage := tao.OnMessageOption(func(msg tao.Message, c tao.WriteCloser) { // onMessage := tao.OnMessageOption(func(msg tao.Message, c tao.WriteCloser) {
// Remote_IP := strings.Split((c.(*tao.ClientConn)).Name(), ":")[0] // Remote_IP := strings.Split((c.(*tao.ClientConn)).Name(), ":")[0]
// // AsClicent_DatagramReceived(Remote_IP, (c.(*tao.ClientConn)).NetID(), msg.(CustomMessage).Content) // // AsClicent_DatagramReceived(Remote_IP, (c.(*tao.ClientConn)).NetID(), msg.(Message).Content)
// fmt.Println(msg.(CustomMessage).Content, Remote_IP) // fmt.Println(msg.(Message).Content, Remote_IP)
// }) // })
// AsClicent = tao.NewClientConn(0, c, onConnect, onError, onClose, onMessage) // AsClicent = tao.NewClientConn(0, c, onConnect, onError, onClose, onMessage)
// AsClicent.Start() // AsClicent.Start()
@ -288,7 +315,7 @@ func CTcpServerStart() {
var SendLock sync.RWMutex var SendLock sync.RWMutex
var UnSendToServerData = make([]CustomMessage, 0) var UnSendToServerData = make([]Message, 0)
// / <summary>发送命令</summary> // / <summary>发送命令</summary>
// / <param name="buf">命令内容</param> // / <param name="buf">命令内容</param>
@ -311,7 +338,7 @@ func (para *FLXNetworkCmdSender) SendToServer(dataMsg []byte) {
} }
// dataMsg = FullCheckSum(dataMsg) // dataMsg = FullCheckSum(dataMsg)
if para.IsSendToServer { // if para.IsSendToServer {
if para.IsConnect { if para.IsConnect {
// _, err := para.CurrentSocket.Write([]byte{0x7e}) // _, err := para.CurrentSocket.Write([]byte{0x7e})
@ -329,7 +356,7 @@ func (para *FLXNetworkCmdSender) SendToServer(dataMsg []byte) {
// 伪代码示例:需确保遍历所有连接 // 伪代码示例:需确保遍历所有连接
msg := CustomMessage{Content: dataMsg} msg := Message{Content: dataMsg}
// CTcpServer.Broadcast(msg) // CTcpServer.Broadcast(msg)
error := AsClicent.Write(msg) error := AsClicent.Write(msg)
@ -342,7 +369,7 @@ func (para *FLXNetworkCmdSender) SendToServer(dataMsg []byte) {
SendLock.Unlock() SendLock.Unlock()
} else { } else {
msg := CustomMessage{Content: dataMsg} msg := Message{Content: dataMsg}
if !Common.Contain(UnSendToServerData, msg) { if !Common.Contain(UnSendToServerData, msg) {
UnSendToServerData = append(UnSendToServerData, msg) UnSendToServerData = append(UnSendToServerData, msg)
} }
@ -357,7 +384,7 @@ func (para *FLXNetworkCmdSender) SendToServer(dataMsg []byte) {
} }
} }
} // }
if !para.IsSendToBackUpServer { if !para.IsSendToBackUpServer {
return return
} }

@ -175,7 +175,7 @@ func (para *FlxNetworkComController) StartTCP(Contype int) bool {
if para.SocketConnected() { if para.SocketConnected() {
para.IsOpened = true para.IsOpened = true
para.Sender.CurrentSocket = para.NetSocket para.Sender.CurrentSocket = para.NetSocket
// para.Reader.CurrentSocket = para.NetSocket para.Reader.CurrentSocket = para.NetSocket
return true return true
} else { } else {
@ -231,6 +231,7 @@ func (para *FlxNetworkComController) TimerCallbackHandler() {
} }
}() }()
for para.HandlerBack { for para.HandlerBack {
fmt.Println("循环执行中")
para.Event_SeatInfos = para.Event_SeatInfos[0:0] para.Event_SeatInfos = para.Event_SeatInfos[0:0]
comPacket := <-para.ComPackets comPacket := <-para.ComPackets
@ -286,6 +287,30 @@ func (para *FlxNetworkComController) SocketConnected() bool {
fmt.Println("关闭原有tcp连接") fmt.Println("关闭原有tcp连接")
para.NetSocket.Close() 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) serveradd := para.ServerIP + ":" + strconv.Itoa(para.ServerPort)
tcpAddr, err := net.ResolveTCPAddr("tcp4", serveradd) tcpAddr, err := net.ResolveTCPAddr("tcp4", serveradd)
if err != nil { if err != nil {

@ -1263,7 +1263,7 @@ func CongressStart(IsStart bool, AgID string, ServerIP string) {
FLXNetConnect.StartTCP(2) FLXNetConnect.StartTCP(2)
} else { } else {
if ServerIP == CFLXCfig.SeverData.ServerIP { if ServerIP == CFLXCfig.SeverData.ServerIP {
FLXNetConnect.StartTCP(0) // FLXNetConnect.StartTCP(0)
} else if ServerIP == CFLXCfig.SeverData.BackUpServerIP { } else if ServerIP == CFLXCfig.SeverData.BackUpServerIP {
FLXNetConnect.StartTCP(1) FLXNetConnect.StartTCP(1)
} }
@ -1310,7 +1310,7 @@ func DisposeContent() {
localcache.AllPerson = nil localcache.AllPerson = nil
localcache.Allperpiccontent = make([]map[string]interface{}, 0) localcache.Allperpiccontent = make([]map[string]interface{}, 0)
localcache.LastCardTime = make(map[string]time.Time, 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() localcache.OnChangeProcess()
CheckInStart() CheckInStart()
} }
//测试 开始会议后直接开始报到 看看 TAO能不能接收到
// if localcache.CurrentAgenda.Ag_Name == "" {
// GetAgenda(CurrentSelectAgendaID)
// }
// localcache.CurrentScreenSessionStatus = Common.SessionStatus_StartReport
// CrrentCongressStatus = 1
// OpenDevice()
// CheckInStart()
// localcache.OnChangeProcess()
} }
//结束会议 //结束会议

Loading…
Cancel
Save