1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package TcpServer
- import (
- "container/list"
- "fmt"
- "time"
- )
- var SessionS list.List
- func TcpServer() {
- //SessionS = list.New()
- fmt.Println("TcpServer")
- server := NewServer(":1452")
- server.OnNewClient(OnNewClient)
- server.OnClientConnectionClosed(OnClientConnectionClosed)
- server.OnNewMessage(OnNewMessage)
- go server.Listen()
- go Polling()
- }
- func Polling() {
- for true{
- for i := SessionS.Front(); i != nil; i = i.Next() {
- t := i.Value.(*Session)
- if t.Device.T_sn == "" {
- t.Verify_num += 1
- if t.Verify_num > 10 {
- t.Close()
- SessionS.Remove(i)
- fmt.Println("Polling 删除")
- }
- }
- }
- time.Sleep(time.Second * 1)
- }
- }
- func OnNewClient(c *Session) {
- fmt.Println("OnNewClient")
- SessionS.PushBack(c)
- c.Send("ok!")
- }
- func OnClientConnectionClosed(c *Session, closeCase int) {
- fmt.Println("OnClientConnectionClosed:",closeCase)
- }
- func OnNewMessage(c *Session, packetData []byte) {
- fmt.Println("OnNewMessage:",packetData)
- }
|