Server.go 982 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package TcpServer
  2. import (
  3. "container/list"
  4. "fmt"
  5. "time"
  6. )
  7. var SessionS list.List
  8. func TcpServer() {
  9. //SessionS = list.New()
  10. fmt.Println("TcpServer")
  11. server := NewServer(":1452")
  12. server.OnNewClient(OnNewClient)
  13. server.OnClientConnectionClosed(OnClientConnectionClosed)
  14. server.OnNewMessage(OnNewMessage)
  15. go server.Listen()
  16. go Polling()
  17. }
  18. func Polling() {
  19. for true{
  20. for i := SessionS.Front(); i != nil; i = i.Next() {
  21. t := i.Value.(*Session)
  22. if t.Device.T_sn == "" {
  23. t.Verify_num += 1
  24. if t.Verify_num > 10 {
  25. t.Close()
  26. SessionS.Remove(i)
  27. fmt.Println("Polling 删除")
  28. }
  29. }
  30. }
  31. time.Sleep(time.Second * 1)
  32. }
  33. }
  34. func OnNewClient(c *Session) {
  35. fmt.Println("OnNewClient")
  36. SessionS.PushBack(c)
  37. c.Send("ok!")
  38. }
  39. func OnClientConnectionClosed(c *Session, closeCase int) {
  40. fmt.Println("OnClientConnectionClosed:",closeCase)
  41. }
  42. func OnNewMessage(c *Session, packetData []byte) {
  43. fmt.Println("OnNewMessage:",packetData)
  44. }