mirror of
https://github.com/AynaLivePlayer/blivedm-go.git
synced 2025-12-06 11:22:50 +08:00
🎨 修改一些error处理 & 减少不必要的fatal
This commit is contained in:
@@ -2,6 +2,7 @@ package client
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/Akegarasu/blivedm-go/api"
|
||||
"github.com/Akegarasu/blivedm-go/packet"
|
||||
@@ -54,8 +55,10 @@ func (c *Client) Connect() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Client) Start() {
|
||||
c.sendEnterPacket()
|
||||
func (c *Client) Start() error {
|
||||
if err := c.sendEnterPacket(); err != nil {
|
||||
return err
|
||||
}
|
||||
go func() {
|
||||
for {
|
||||
msgType, data, err := c.conn.ReadMessage()
|
||||
@@ -73,14 +76,16 @@ func (c *Client) Start() {
|
||||
}
|
||||
}()
|
||||
go c.startHeartBeat()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Client) ConnectAndStart() error {
|
||||
err := c.Connect()
|
||||
if err != nil {
|
||||
if err := c.Connect(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := c.Start(); err != nil {
|
||||
return err
|
||||
}
|
||||
c.Start()
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -96,23 +101,24 @@ func (c *Client) startHeartBeat() {
|
||||
pkt := packet.NewHeartBeatPacket()
|
||||
for {
|
||||
if err := c.conn.WriteMessage(websocket.BinaryMessage, pkt); err != nil {
|
||||
log.Fatal(err)
|
||||
log.Error(err)
|
||||
}
|
||||
log.Debug("send: HeartBeat")
|
||||
time.Sleep(30 * time.Second)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Client) sendEnterPacket() {
|
||||
func (c *Client) sendEnterPacket() error {
|
||||
rid, err := strconv.Atoi(c.roomID)
|
||||
if err != nil {
|
||||
log.Fatal("error roomID")
|
||||
return errors.New("error roomID")
|
||||
}
|
||||
pkt := packet.NewEnterPacket(0, rid)
|
||||
if err := c.conn.WriteMessage(websocket.BinaryMessage, pkt); err != nil {
|
||||
log.Fatal(err)
|
||||
return err
|
||||
}
|
||||
log.Debugf("send: EnterPacket: %v", pkt)
|
||||
return nil
|
||||
}
|
||||
|
||||
func getDanmuInfo(roomID string) (*DanmuInfo, error) {
|
||||
|
||||
@@ -102,7 +102,7 @@ func (c *Client) Handle(p packet.Packet) {
|
||||
if _, ok := knownCMDMap[cmd]; ok {
|
||||
return
|
||||
}
|
||||
log.Infof("cmd %s, %s", p.Body, cmd)
|
||||
log.Debugf("cmd %s, %s", p.Body, cmd)
|
||||
log.WithField("data", string(p.Body)).Warn("unknown cmd")
|
||||
}
|
||||
case packet.HeartBeatResponse:
|
||||
|
||||
@@ -2,7 +2,7 @@ package packet
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
type Enter struct {
|
||||
@@ -35,7 +35,7 @@ func NewEnterPacket(uid int, roomID int) []byte {
|
||||
func (e *Enter) Json() []byte {
|
||||
marshal, err := json.Marshal(e)
|
||||
if err != nil {
|
||||
log.Fatalln("NewEnterPacket JsonMarshal failed", err)
|
||||
log.Error("NewEnterPacket JsonMarshal failed", err)
|
||||
}
|
||||
return marshal
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ func NewPacketFromBytes(data []byte) Packet {
|
||||
packLen := binary.BigEndian.Uint32(data[0:4])
|
||||
// 校验包长度
|
||||
if int(packLen) != len(data) {
|
||||
log.Fatal("error packet")
|
||||
log.Error("error packet")
|
||||
}
|
||||
pv := binary.BigEndian.Uint16(data[6:8])
|
||||
op := binary.BigEndian.Uint32(data[8:12])
|
||||
|
||||
Reference in New Issue
Block a user