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