Ai
2 Star 0 Fork 0

MixerJ/pitaya

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
main.go 1.23 KB
一键复制 编辑 原始数据 按行查看 历史
zhusw 提交于 2020-07-18 17:46 +08:00 . modify go mod
package main
import (
"flag"
"fmt"
"time"
"strings"
"gitee.com/mixerj/pitaya"
"gitee.com/mixerj/pitaya/acceptor"
"gitee.com/mixerj/pitaya/acceptorwrapper"
"gitee.com/mixerj/pitaya/component"
"gitee.com/mixerj/pitaya/config"
"gitee.com/mixerj/pitaya/examples/demo/rate_limiting/services"
"gitee.com/mixerj/pitaya/serialize/json"
"github.com/spf13/viper"
)
func configureFrontend(port int) {
room := services.NewRoom()
pitaya.Register(room,
component.WithName("room"),
component.WithNameFunc(strings.ToLower))
// 5 requests in 1 minute. Doesn't make sense, just to test
// rate limiting
vConfig := viper.New()
vConfig.Set("pitaya.conn.ratelimiting.limit", 5)
vConfig.Set("pitaya.conn.ratelimiting.interval", time.Minute)
pConfig := config.NewConfig(vConfig)
tcp := acceptor.NewTCPAcceptor(fmt.Sprintf(":%d", port))
wrapped := acceptorwrapper.WithWrappers(
tcp,
acceptorwrapper.NewRateLimitingWrapper(pConfig))
pitaya.AddAcceptor(wrapped)
}
func main() {
defer pitaya.Shutdown()
port := flag.Int("port", 3250, "the port to listen")
svType := "room"
flag.Parse()
pitaya.SetSerializer(json.NewSerializer())
configureFrontend(*port)
pitaya.Configure(true, svType, pitaya.Cluster, map[string]string{})
pitaya.Start()
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/mixerj/pitaya.git
git@gitee.com:mixerj/pitaya.git
mixerj
pitaya
pitaya
4e7898a663a6

搜索帮助