| | |
| | | Writer *bufio.Writer |
| | | // 写入通道 |
| | | writeChan chan []byte |
| | | // 退出通道 |
| | | exitChan chan int8 |
| | | // 连接状态 |
| | | state State |
| | | // 报文头 |
| | |
| | | c.readLock = new(sync.Mutex) |
| | | c.writeLock = new(sync.Mutex) |
| | | c.writeChan = make(chan []byte) |
| | | c.exitChan = make(chan int8) |
| | | c.state = StateInit |
| | | c.tmpByte4Slice = make([]byte, 4) |
| | | c.waitGroup = &util.WaitGroupWrapper{} |
| | |
| | | return c.deviceId |
| | | } |
| | | |
| | | // 获取连接状态 |
| | | func (c *Client) GetState() State { |
| | | return c.state |
| | | } |
| | | |
| | | // 判断连接是否关闭 |
| | | func (c *Client) IsClosed() bool { |
| | | return c.state == StateDisconnected |
| | |
| | | if c.IsConnected() { |
| | | c.clientCallback.OnClose(c) |
| | | } |
| | | close(c.writeChan) |
| | | } |
| | | |
| | | // 设置连接属性 |