mirror of
https://github.com/fhmq/hmq.git
synced 2026-04-26 19:48:34 +00:00
fix write logic
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
package broker
|
package broker
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"net"
|
"net"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -498,9 +499,11 @@ func (c *client) Close() {
|
|||||||
c.smu.Unlock()
|
c.smu.Unlock()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.status = Disconnected
|
||||||
//wait for message complete
|
//wait for message complete
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
c.status = Disconnected
|
// c.status = Disconnected
|
||||||
|
|
||||||
if c.conn != nil {
|
if c.conn != nil {
|
||||||
c.conn.Close()
|
c.conn.Close()
|
||||||
@@ -540,10 +543,18 @@ func (c *client) Close() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *client) WriterPacket(packet packets.ControlPacket) error {
|
func (c *client) WriterPacket(packet packets.ControlPacket) error {
|
||||||
if c == nil || packet == nil {
|
if c.status == Disconnected {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if packet == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if c.conn == nil {
|
||||||
|
c.Close()
|
||||||
|
return errors.New("connect lost ....")
|
||||||
|
}
|
||||||
|
|
||||||
c.mu.Lock()
|
c.mu.Lock()
|
||||||
err := packet.Write(c.conn)
|
err := packet.Write(c.conn)
|
||||||
c.mu.Unlock()
|
c.mu.Unlock()
|
||||||
|
|||||||
Reference in New Issue
Block a user