Consolidate pinecone demo http server variations

This commit is contained in:
Devon Hudson 2023-02-01 14:11:48 -07:00
parent 048e35026c
commit a666c06da1
No known key found for this signature in database
GPG key ID: CD06B18E77F6A628
3 changed files with 10 additions and 34 deletions

View file

@ -342,12 +342,10 @@ func (m *DendriteMonolith) Start() {
cfg.Global.JetStream.InMemory = false cfg.Global.JetStream.InMemory = false
enableRelaying := false enableRelaying := false
enableMetrics := true enableMetrics := false
enableWebsockets := true enableWebsockets := false
m.p2pMonolith.SetupDendrite(cfg, 65432, enableRelaying, enableMetrics, enableWebsockets) m.p2pMonolith.SetupDendrite(cfg, 65432, enableRelaying, enableMetrics, enableWebsockets)
m.p2pMonolith.StartMonolith()
useTCPListener := false
m.p2pMonolith.StartMonolith(useTCPListener)
} }
func (m *DendriteMonolith) Stop() { func (m *DendriteMonolith) Stop() {

View file

@ -90,9 +90,7 @@ func main() {
enableMetrics := true enableMetrics := true
enableWebsockets := true enableWebsockets := true
p2pMonolith.SetupDendrite(cfg, *instancePort, *instanceRelayingEnabled, enableMetrics, enableWebsockets) p2pMonolith.SetupDendrite(cfg, *instancePort, *instanceRelayingEnabled, enableMetrics, enableWebsockets)
p2pMonolith.StartMonolith()
useTCPListener := false
p2pMonolith.StartMonolith(useTCPListener)
p2pMonolith.WaitForShutdown() p2pMonolith.WaitForShutdown()
go func() { go func() {

View file

@ -50,8 +50,6 @@ import (
userAPI "github.com/matrix-org/dendrite/userapi/api" userAPI "github.com/matrix-org/dendrite/userapi/api"
"github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"golang.org/x/net/http2"
"golang.org/x/net/http2/h2c"
pineconeConnections "github.com/matrix-org/pinecone/connections" pineconeConnections "github.com/matrix-org/pinecone/connections"
pineconeMulticast "github.com/matrix-org/pinecone/multicast" pineconeMulticast "github.com/matrix-org/pinecone/multicast"
@ -199,8 +197,8 @@ func (p *P2PMonolith) GetUserAPI() userAPI.UserInternalAPI {
return p.dendrite.UserAPI return p.dendrite.UserAPI
} }
func (p *P2PMonolith) StartMonolith(useTCPListener bool) { func (p *P2PMonolith) StartMonolith() {
p.startHTTPServers(useTCPListener) p.startHTTPServers()
p.startEventHandler() p.startEventHandler()
} }
@ -284,26 +282,7 @@ func (p *P2PMonolith) setupHttpServers(userProvider *users.PineconeUserProvider,
pHTTP.Mux().Handle(httputil.PublicMediaPathPrefix, p.pineconeMux) pHTTP.Mux().Handle(httputil.PublicMediaPathPrefix, p.pineconeMux)
} }
func (p *P2PMonolith) startHTTPServers(useTCPListener bool) { func (p *P2PMonolith) startHTTPServers() {
var handler http.Handler
var httpServeFunc func() error
if useTCPListener {
var err error
p.httpListenAddr = "localhost:" + fmt.Sprint(p.port)
p.listener, err = net.Listen("tcp", p.httpListenAddr)
if err != nil {
panic(err)
}
h2s := &http2.Server{}
handler = h2c.NewHandler(p.pineconeMux, h2s)
httpServeFunc = func() error { return http.Serve(p.listener, p.httpMux) }
} else {
handler = p.pineconeMux
p.httpListenAddr = fmt.Sprintf(":%d", p.port)
httpServeFunc = func() error { return http.ListenAndServe(p.httpListenAddr, p.httpMux) }
}
go func() { go func() {
// Build both ends of a HTTP multiplex. // Build both ends of a HTTP multiplex.
httpServer := &http.Server{ httpServer := &http.Server{
@ -315,7 +294,7 @@ func (p *P2PMonolith) startHTTPServers(useTCPListener bool) {
BaseContext: func(_ net.Listener) context.Context { BaseContext: func(_ net.Listener) context.Context {
return context.Background() return context.Background()
}, },
Handler: handler, Handler: p.pineconeMux,
} }
pubkey := p.Router.PublicKey() pubkey := p.Router.PublicKey()
@ -330,9 +309,10 @@ func (p *P2PMonolith) startHTTPServers(useTCPListener bool) {
} }
}() }()
p.httpListenAddr = fmt.Sprintf(":%d", p.port)
go func() { go func() {
logrus.Info("Listening on ", p.httpListenAddr) logrus.Info("Listening on ", p.httpListenAddr)
switch httpServeFunc() { switch http.ListenAndServe(p.httpListenAddr, p.httpMux) {
case net.ErrClosed, http.ErrServerClosed: case net.ErrClosed, http.ErrServerClosed:
logrus.Info("Stopped listening on ", p.httpListenAddr) logrus.Info("Stopped listening on ", p.httpListenAddr)
default: default: