新增 event , 优化 websocket
This commit is contained in:
@@ -15,6 +15,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 (
|
||||
@@ -56,8 +57,9 @@ func main() {
|
||||
if err != nil {
|
||||
zap.L().Fatal("failed to init memory provider", zap.Error(err))
|
||||
}
|
||||
subscriber := subscribe.NewMemorySubscriber()
|
||||
server, err := pkg.NewPageServer(http.DefaultClient,
|
||||
provider, domain, "gh-pages", memory, memory, 0, &nopCache{},
|
||||
provider, domain, "gh-pages", memory, subscriber, memory, 0, &nopCache{}, 0,
|
||||
func(w http.ResponseWriter, r *http.Request, err error) {
|
||||
if errors.Is(err, os.ErrNotExist) {
|
||||
http.Error(w, "page not found.", http.StatusNotFound)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user