新增 event , 优化 websocket

This commit is contained in:
ExplodingDragon
2025-11-20 01:19:47 +08:00
parent 043b00bbb7
commit d6440ebb02
16 changed files with 646 additions and 13 deletions

View File

@@ -22,6 +22,7 @@ type Config struct {
Domain string `yaml:"domain"` // 基础域名
Database ConfigDatabase `yaml:"database"` // 配置
Event ConfigEvent `yaml:"event"` // 事件传递
Auth ConfigAuth `yaml:"auth"` // 后端认证配置
@@ -76,6 +77,9 @@ type ConfigPage struct {
type ConfigDatabase struct {
URL string `yaml:"url"`
}
type ConfigEvent struct {
URL string `yaml:"url"`
}
type ConfigProxy struct {
Enable bool `yaml:"enable"` // 是否允许反向代理
@@ -113,6 +117,9 @@ func LoadConfig(path string) (*Config, error) {
if c.Database.URL == "" {
return nil, errors.New("c is required")
}
if c.Event.URL == "" {
c.Event.URL = "memory://"
}
if c.StaticDir != "" {
stat, err := os.Stat(c.StaticDir)
if err != nil {

View File

@@ -16,6 +16,7 @@ import (
"gopkg.d7z.net/gitea-pages/pkg/providers"
"gopkg.d7z.net/middleware/cache"
"gopkg.d7z.net/middleware/kv"
"gopkg.d7z.net/middleware/subscribe"
)
var (
@@ -64,15 +65,22 @@ func main() {
if !ok {
log.Fatalln(errors.New("database not support cursor"))
}
event, err := subscribe.NewSubscriberFromURL(config.Event.URL)
if err != nil {
log.Fatalln(err)
}
defer event.Close()
pageServer, err := pkg.NewPageServer(
http.DefaultClient,
backend,
config.Domain,
config.Page.DefaultBranch,
cdb,
event,
cacheMeta,
config.Cache.MetaTTL,
cacheBlob.Child("filter"),
config.Cache.BlobTTL,
config.ErrorHandler,
config.Filters,
)