Optimize JoinRoomByID in case of network delay

This commit is contained in:
zhaoYangguang 2020-11-18 18:14:00 +08:00
parent fdd06e8145
commit adf4890fbb
1 changed files with 7 additions and 2 deletions

View File

@ -7,6 +7,7 @@ import (
"maunium.net/go/mautrix"
"strconv"
"strings"
"time"
"maunium.net/go/maulogger/v2"
@ -56,10 +57,14 @@ func (mx *MatrixHandler) HandleEncryption(evt *event.Event) {
func (mx *MatrixHandler) joinAndCheckMembers(evt *event.Event, intent *appservice.IntentAPI) *mautrix.RespJoinedMembers {
resp, err := intent.JoinRoomByID(evt.RoomID)
if err != nil {
time.Sleep(3 * time.Second)
resp, err = intent.JoinRoomByID(evt.RoomID)
if err != nil {
mx.log.Debugfln("Failed to join room %s as %s with invite from %s: %v", evt.RoomID, intent.UserID, evt.Sender, err)
return nil
}
}
members, err := intent.JoinedMembers(resp.RoomID)
if err != nil {