config.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package config
  2. const (
  3. // 系统错误号定义,最低号为110,最高127
  4. MIN_SYSTEM_ERROR_CODE = 110 // 系统信息最小值
  5. NEXT_SUBSCRIBE = 111
  6. NEXT_MIDDLE = 112
  7. CONVERT_FAILED = 113
  8. FORBIDDEN = 120
  9. SYSTEM_ERROR = 123
  10. GET_TIMEOUT = 124
  11. CONNECT_NO_MATCH = 125
  12. CONNECT_END = 126
  13. NO_MATCH = 127
  14. MAX_SYSTEM_ERROR_CODE = 127 //系统信息最大值
  15. )
  16. // 转换 id 到对应的消息
  17. func IdMsg(id int) string {
  18. switch id {
  19. case NEXT_SUBSCRIBE:
  20. return "NEXT SUBSCRIBE"
  21. case NEXT_MIDDLE:
  22. return "NEXT MIDDLE"
  23. case CONVERT_FAILED:
  24. return "CONVERT FAILED"
  25. case FORBIDDEN:
  26. return "FORBIDDEN"
  27. case SYSTEM_ERROR:
  28. return "SYSTEM ERROR"
  29. case GET_TIMEOUT:
  30. return "GET TIMEOUT"
  31. case CONNECT_NO_MATCH:
  32. return "CONNECT NO MATCH"
  33. case CONNECT_END:
  34. return "CONNECT END"
  35. case NO_MATCH:
  36. return "NO MATCH"
  37. }
  38. return "UNKNOWN"
  39. }
  40. // 定义成功与失败的值
  41. const STATE_OK = 1
  42. const STATE_FAILED = 0
  43. const (
  44. // ID 号最高值,高于这个值的ID号为系统内部使用
  45. ID_MAX = 65500
  46. // 验证ID
  47. ID_AUTH = 65502
  48. )
  49. // 全局配置
  50. type Config struct {
  51. ConnectTimeout int // 没有收到数据包的连接超时时间(ms)
  52. PingInterval int // 发送ping包的时间间隔,前提是没有收到数据包(ms)
  53. WriteWait int // 写入网络数据等待最长时间(ms)
  54. ReadWait int // 获取命令数据超时时间 (ms)
  55. LongReadWait int // 长时间等待读取数据的超时时间(ms)
  56. CleanDeadConnectWait int // 清理异常的连接(ms)
  57. PrintPing bool // 打印连接ping包
  58. PrintMsg bool // 打印数据包
  59. ProxyTimeout int // 客户端检测是否使用代理连接,如果是则进行直连尝试(ms)
  60. ConnectCheck int // 客户端重连检测周期(ms)
  61. }
  62. // 获取实例好的配置
  63. func NewConfig() *Config {
  64. // 配置基础的数据
  65. return &Config{
  66. ConnectTimeout: 30 * 1000,
  67. PingInterval: 61 * 1000,
  68. WriteWait: 60 * 1000,
  69. ReadWait: 30 * 1000,
  70. LongReadWait: 150 * 1000,
  71. CleanDeadConnectWait: 3600 * 1000,
  72. PrintPing: false,
  73. PrintMsg: true,
  74. ProxyTimeout: 3600 * 1000,
  75. ConnectCheck: 600 * 1000,
  76. }
  77. }