Bladeren bron

:art: Concurrency control when requesting the kernel API https://github.com/siyuan-note/siyuan/issues/9939

Daniel 1 jaar geleden
bovenliggende
commit
a190066523
1 gewijzigde bestanden met toevoegingen van 6 en 0 verwijderingen
  1. 6 0
      kernel/model/session.go

+ 6 - 0
kernel/model/session.go

@@ -28,6 +28,7 @@ import (
 
 	"github.com/88250/gulu"
 	"github.com/gin-gonic/gin"
+	"github.com/gorilla/websocket"
 	"github.com/siyuan-note/logging"
 	"github.com/siyuan-note/siyuan/kernel/util"
 	"github.com/steambap/captcha"
@@ -325,6 +326,11 @@ var (
 )
 
 func ControlConcurrency(c *gin.Context) {
+	if websocket.IsWebSocketUpgrade(c.Request) {
+		c.Next()
+		return
+	}
+
 	requestingLock.Lock()
 	mutex := requesting[c.Request.URL.Path]
 	if nil == mutex {