add reconnect to websocket, add get world json object

This commit is contained in:
lbenedar
2026-04-13 17:40:59 +03:00
parent cd204ebcf5
commit 5bb592ea8a
14 changed files with 321 additions and 103 deletions

View File

@@ -30,9 +30,10 @@ func (channels *ExchangeChannels) Close() {
}
type ReadChannels struct {
done chan struct{}
msg chan *WsMessage
err chan error
done chan struct{}
reconnect chan struct{}
msg chan *WsMessage
err chan error
}
func (channels ReadChannels) Err() chan error {
@@ -47,6 +48,10 @@ func (channels ReadChannels) Done() chan struct{} {
return channels.done
}
func (channels ReadChannels) Reconnect() chan struct{} {
return channels.reconnect
}
func CloseChannel[V any](channel chan V) {
select {
case _, ok := <-channel:
@@ -62,12 +67,14 @@ func (channels *ReadChannels) Close() {
CloseChannel(channels.done)
CloseChannel(channels.err)
CloseChannel(channels.msg)
CloseChannel(channels.reconnect)
}
func InitWsChannels() *ReadChannels {
return &ReadChannels{
done: make(chan struct{}),
err: make(chan error, 10),
msg: make(chan *WsMessage, 10),
done: make(chan struct{}),
err: make(chan error, 10),
msg: make(chan *WsMessage, 10),
reconnect: make(chan struct{}),
}
}

View File

@@ -81,3 +81,7 @@ func ParseWsRespMessage(msg string, requestCodes []string) (*WsMessage, error) {
func NewWsMessageByPage(page string, currWsId int) *WsMessage {
return &WsMessage{Code: CodesRespToReq[RespServerChangeCode], Id: currWsId, MsgJson: fmt.Sprintf("[\"%s\"]", requests.WsTypeData[page])}
}
func NewWsMessage(msg string, currWsId int) *WsMessage {
return &WsMessage{Code: CodesRespToReq[RespServerChangeCode], Id: currWsId, MsgJson: fmt.Sprintf("[\"%s\"]", msg)}
}